Cin直到输入结束

时间:2012-03-21 19:33:05

标签: c++ loops cin

我需要读取一个字符串然后一个整数,直到用户指示输入结束(linux中的ctrl-d)。再一次,我被困住了。目前我有一个while循环:

while (getline(cin, line))

然而,这给出了整行,然后我似乎无法将字符串与整数分开。建议将非常感谢! :)

2 个答案:

答案 0 :(得分:4)

如果字符串和整数用空格分隔; 这样做:

while(std::cin>>your_string>>your_num>>std::ws){}

您可以自己编写操纵器来选择自己的分隔符。

另一种方法是按照自己的方式进行,并将输入行放入字符串流中,并从中提取字符串和数字。这种方法对我来说似乎是迂回的,因为你从流中获取字符串只是为了将它放入另一个流中。

答案 1 :(得分:1)

cin>>a

上述语句从标准输入读取标记并将其存储在变量中。鲜为人知的是它也返回一个bool值。当您到达所有标准输入的末尾时,上述语句将返回false。 在if语句中使用它!

if(c>>a){
  cout<<"End of standard input has been reached!";
}
相关问题