我希望通过cin缓冲区读取我的程序,直到其中没有任何内容可供阅读。
有很多地方似乎对此提出了建议:
while (cin)
{
cin >> s;
//do stuff with s
}
但是,当我尝试这个时,即使cin缓冲区为空,程序也会无限地等待输入并执行循环。
while while(cin>> s)完全相同。
答案 0 :(得分:2)
如果标准输入附加到终端,程序将等待输入,直到它获得EOF条件,您可以使用 Ctrl-D
在POSIX系统上发送该条件答案 1 :(得分:0)
你是对的,它将永远等待新的一行。
你能做的是:
while(cin >> s){
//do stuff with s
}
这是做什么的,当你仍然可以阅读s然后做的事情。你最终会到达缓冲区的末尾并停止。
我相信你这样做的方式,计算机认为它仍然可以有一些信息进入。