如何中断C ++程序

时间:2012-10-20 17:52:05

标签: c++

这是该计划的要点:

while(true)
{
//bunch of codes that gets data from port ,
//if there is no data it waits here .

}

我正在使用linux,是否有像Ctrl + C这样的按键内置支持。我可以使用signal(SIGINT, signal_callback_handler);来捕获它,但是Ctrl + C有一些问题,因为它会产生错误。

我想在按键上退出这个循环,这可能吗? 如果是,那该怎么做。

3 个答案:

答案 0 :(得分:0)

while(!_kbhit()){
    // do stuff here.
}

适用于Windows。

答案 1 :(得分:0)

你可以发出信号并打断

      #include <csignal>

      raise(SIGINT);

     raise(SIGABRT);

答案 2 :(得分:0)

可以终止程序的功能是exit()

要输入您的角色的提前终止,您可以使用break

如果您愿意使用某种面向C的解决方案,我建议您查看this question

对于与linux严格相关的内容,您可能应该参考ncurses library in combination with the exit function

另外,不要假设特定的键组合等于终止,许多终端不是真正的终端而是模拟器,并且许多模拟器可由OS创建者和用户自定义。