OJ刷题时的输入C++写法总结

本文总结一下在OJ刷题时,遇到的各类输入,用C++应该如何写。

一、当输入为1个数字时

如下:

#include <iostream>
using namespace std;

int main() {
    int num;
    cin >> num;
    
    cout << "num = " << num << endl;

    return 0;
}

终端显示如下:

5
num = 5

二、当输入为多个数字,并用空格隔开时

如下:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
    string input;
    getline(cin, input);
    stringstream ss(input);

    int num = 0;
    int sum = 0;
    while(ss >> num)//直接用while(cin, num)不行,因为不会自动跳出循环
    {
        cout << "num = " << num << endl;
        sum += num;
    }
    cout << "sum = " << sum << endl;

    return 0;
}

终端显示如下:

4 5 6 7
num = 4
num = 5
num = 6
num = 7
sum = 22

三、当输入为多个数字,并用逗号隔开时

如下:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
    string input;
    getline(cin, input);
    stringstream ss(input);

    int num = 0;
    int sum = 0;

    string substr;
    while(getline(ss, substr, ',')) // 以逗号为定界符提取子字符串
    {
        num = stoi(substr); // 转换子字符串为整数
        cout << "num = " << num << endl;
        sum += num;
    }
    cout << "sum = " << sum << endl;

    return 0;
}

终端显示如下:

4,5,  7  
num = 4
num = 5
num = 7
sum = 16

四、当输入为多个数字,并用不同的符号隔开时

如下(除空格外,各类字符都支持):

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main()
{
    string input_str;
    int num = 0, sum = 0;
    getline(cin, input_str);
    stringstream ss(input_str);
    char comma;

    while(ss >> num)
    {
        cout << num << endl;
        ss >> comma;
        sum += num;
    }

    cout << "sum = " << sum << endl;
    return 0;
}

终端显示如下:

4%3*7=8
4
3
7
8
sum = 22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码到程攻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值