我需要读取一个字符串然后一个整数,直到用户指示输入结束(linux中的ctrl-d)。再一次,我被困住了。目前我有一个while循环:
while (getline(cin, line))
然而,这给出了整行,然后我似乎无法将字符串与整数分开。建议将非常感谢! :)
答案 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!";
}