我正在尝试读取数据并解决简单问题,数据:
3 - number of lines to read in
1 1
2 2 2
3 4
Run Code Online (Sandbox Code Playgroud)
在输入每一行之后,我想获得输入数量的总和,但每行中的整数数量是未知的.使用上面的数据后,屏幕应如下所示:
3
1 1
Sum: 2
2 2 2
Sum: 6
3 4
Sum: 7
Run Code Online (Sandbox Code Playgroud)
但是根据我的算法,我得到了输出:
3
1 1
Sum: 1
2 2 2
Sum: 4
3 4
Sum: 3
Run Code Online (Sandbox Code Playgroud)
我已经写代码,但它不能正常工作(如上):
版
我提高了我的代码,并知道它正常工作,不附带任何条件等,适当的代码如下:
#include<iostream>
using namespace std;
int main()
{
int x;
int t, sum;
cin >> t;
for(int i=0; i<t; i++) {
sum=0;
while(true)
{
cin >> x;
sum = sum + x;
if(cin.peek()=='\n')
break; //conditional break
}
cout << "Sum: " << sum << "\n";
}
return(0);
}
Run Code Online (Sandbox Code Playgroud)
一次读一行,使用getline,进入类型的对象std::string.然后使用该std::string对象初始化类型的对象std::istringstream,并使用提取器int从流对象中读取值,直到它失败.然后回去看下一行.大致:
std::string line;
while (std::getline(std::cin, line)) {
std::istringstream in(line);
int sum = 0;
int value = 0;
while (in >> value)
sum += value;
std::cout << sum << '\n';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1232 次 |
| 最近记录: |