gpt4 book ai didi

C++读取固定数量的整数行,每行中的整数数量未知

转载 作者:搜寻专家 更新时间:2023-10-31 00:16:48 27 4
gpt4 key购买 nike

我正在尝试读取数据并解决简单的问题,数据:

3               - number of lines to read in
1 1
2 2 2
3 4

输入每一行后,我想获得输入数字的总和,但每行中的整数个数是未知的。使用上面的数据屏幕后应该是这样的:

3               
1 1
Sum: 2
2 2 2
Sum: 6
3 4
Sum: 7

但是根据我的算法我得到了输出:

3
1 1
Sum: 1
2 2 2
Sum: 4
3 4
Sum: 3

我已经编写了代码,但它不能正常工作(如上):版本
我改进了我的代码并且知道它在没有字符串等的情况下也能正常工作,正确的代码如下:

#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);
}

最佳答案

使用 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';
}

关于C++读取固定数量的整数行,每行中的整数数量未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com