需要帮助在 c++ 中使用字符串流在一行中输入多个整数
Need help inputing multiple integers in one line with stringstream in c++
我想做一个程序,在一行中输入多个整数,而不知道该整数本身的数量。所以我想我会使用 sstream,但卡住了,因为这是我第一次使用 sstream。
string zzz;
int i=0,current;
int main()
{
stringstream ss;
getline(cin,zzz);
while(stringstream(zzz)>> i)
{
cout << i<< endl;
}
}
例如,如果我输入 123 456,它将导致打印 123 的无限循环。怎么会这样呢?
表达式
stringstream(zzz) >> i
在每次迭代中计算。这意味着每次检查循环条件时,您都会创建一个内容与以前相同的新流。
如果在循环之前移动字符串流,它应该按预期工作:
getline(cin,zzz);
stringstream ss(zzz);
while(ss>> i)
{
cout << i<< endl;
}
虽然@nosid的答案确实有效,但在这种情况下使用 std::getline()
是不明智的,因为直接使用提取器可以更轻松地完成此任务:
while (std::cin >> i)
{
std::cout << i << std::endl;
}
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在C++中,我如何接受不同于同一行的用户输入
- 如何确保用户在一行上提示输入一次时输入名字和姓氏?
- 忽略一行输入中的某些输入
- 丢失读入的每一行输入中的最后一个令牌
- 一行输入到多个变量
- 如何检查从键盘输入的特定整数值是否存在于C++文件中的一行或多行中
- 通过显示一行星号来创建条形图,该条形图将读取数据的输入文件
- 与 C++ 中一行中的用户输入数组元素相关的问题
- 如何在应用程序进行大量printf时,在固定输入的终端中设置最后一行
- 使用 getline 从输入文件读取一行到输出文件
- 标准输入未读取最后一行
- C :使用getline从文本文件中输入,要么跳过第一行,要么将其余部分弄乱
- 在C++的同一行输入值
- 使用 Getline C++ 将每一行输入存储在数组中
- scanf() 为最后一行输入提供错误的输出
- 如何在只有一行输入的向量中输入多个输入
- 仅对前一行输入使用cin.clear()或cin,ignore()
- 我如何在同一行输入2个不同的变量,同时使用setw进行格式化