在没有用户输入输入的情况下中断循环

时间:2014-07-26 22:40:50

标签: c++ linux while-loop interrupt cin

main中,我让用户能够输入停止应用程序的命令:

while( run_processes && cin >> command_line_input ){

我还想通过设置run_processes = false;来停止应用程序。

但是,当我将run_processes设置为false时,如果没有用户输入输入,上述循环就不会停止。

如果没有用户输入输入,我怎样才能正确中断循环?

2 个答案:

答案 0 :(得分:6)

无法以便携方式中断std::cin

然而,您可以解析为非便携式解决方案,例如手动poll() UNIX系统上的标准输入,并在轮询时检查run_processes

答案 1 :(得分:0)

  

cin不一定依赖于用户输入   继续?

是的,用户必须在每个循环中输入输入。

bool stop = false;
std::string command;
int count = 0;
while(stop==false && std::cin>>command)
{
    ++count;
    std::cout<<count<<std::endl;
}

输入内容后,上面的代码只计算+1。 除非您根据用户输入更改run_process的值,否则我不明白它为什么不能工作...?