C++-从标准输入中获取可变数量的整数,n次
C++ - Taking variable number of integers from standard input, n number of times
我不明白为什么下面程序中的循环没有准确地运行testCount次。请帮忙纠正。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
size_t testCount;
cin >> testCount;
if(testCount < 0 || testCount > 100) return 0;
int input;
while(testCount--) {
string instr;
getline(cin,instr);
istringstream iss(instr);
while(iss >> input) {
cout << input << endl;
}
}
return 0;
}
谢谢。我明白了。问题出在getline()
上。当我在键入testCount
值后按下enter key
时,由于getline()
占用了只包含新行字符的第一行,第一个循环周期被浪费了。
std::ws
是一个输入流操纵器,它忽略所有空白,直到遇到第一个非空白字符。
此外,如果getline
不适合该行,则会在它们所在的位置留下空白。cin >> ws
将丢弃这些。
这是防弹码:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
size_t testCount;
cin >> testCount >> ws;
if(testCount < 0 || testCount > 100) return 0;
int input;
while(testCount--) {
cout << "testCount " << testCount << endl;
string instr;
cin >> ws;
getline(cin,instr);
istringstream iss(instr);
while(iss >> input) {
cout << input << endl;
}
}
return 0;
}
相关文章:
- 从标准输入读取文件后读取用户输入
- 如何从标准输入中检测格式化输入错误?
- C++ - 标准输入环路
- 快速读取标准输入缓冲区,无需检查
- 将标准输入中的双精度存储在矢量中
- 如何将 getline 与标准输入一起使用?
- 从 C++ 中的标准输入迭代读取字节
- C++计算标准输入的字数
- 如何从 c++ 中的给定标准输入中获取每个字符的偏移量?
- 如何在出现换行符之前将多个整数作为输入?
- 为什么此代码从标准输入中少一个输入?
- 如何在C++中从标准输入中获取变量输入
- C++ 从标准输入读取文件名
- 从标准输入读取多个类型时出现问题
- 从标准输入和输入值中读取整数到向量
- C++ 中 15000 数组索引之后的不相关整数标准输入
- 使用标准输入 c++ 将整数读入 int 并将字符串读入字符串
- 在接受标准输入中的字符串时,请检查特定的整数
- C++-从标准输入中获取可变数量的整数,n次
- 如何从标准输入中擦除矢量中的整数