我希望从控制台获取输入数量未知的输入。我所知道的是它们不到或等于10。
我编写了这段代码,但它会两次评估最后一个值。
int x;
do{
cin>>x;
cout<<check(x)<<"\n";
}while(std::cin);
输入采用以下形式:
12
2
45
答案 0 :(得分:2)
正如@LightnessRacesinOrbit评论的那样,它是while(!eof)
bug again。您应该在读取之后检查流状态,而不是之前的。
您可以在cin>>x
条件中使用while
并应用特殊值(即任何不是数字的值)作为结束标记,如下所示:
while (cin >> x)
{
// got a value
}
答案 1 :(得分:0)
您可以使用istream :: geline。
char input[1024]
std::cin.getline (input,1024);
读完该行后,必须用白色空格作为分隔符将其拆分。只需忽略第11次拆分。你可以在分裂(some_split.c_str())上应用atoi或类似函数来获取数值