基于键盘输入的c ++退出循环

时间:2009-03-30 03:54:54

标签: c++ loops

是否可以基于键盘输入退出C ++循环而不必每次迭代都输入内容?

例如

while(checkkeyboardinput != 'q')
   {
     do work
   }

我觉得这很容易,但谷歌没有帮助我,我不记得怎么做了。谢谢你的帮助。

编辑:我正在使用VS2008

3 个答案:

答案 0 :(得分:4)

尝试_kbhit()。据我所知,它会检查缓冲区中是否有任何键盘输入等待。

http://msdn.microsoft.com/en-us/library/58w7c94c%28VS.80%29.aspx

  

_kbhit

     

检查控制台是否有键盘输入。

     

int _kbhit(void);

     

返回值

     如果已按下某个键,

_kbhit将返回非零值。否则,它   返回0.

     

<强>说明

     

_kbhit函数检查控制台   最近的击键。如果   function返回非零值,a   击键在缓冲区中等待。   然后程序可以调用_getch或   _getche获得击键。

答案 1 :(得分:3)

如果您使用的是ncurses,则可以非常轻松地使用getch()。但是,没有标准的方法来做你想做的事。

答案 2 :(得分:1)

你忽略了提到你正在运行的操作系统。获取键盘输入取决于操作系统(甚至依赖于库 - 例如,如何使用GTK显然是特定于GTK。)

嗯,GTK可以在多个操作系统上运行,所以......但是你明白了。您需要详细说明您的工作环境以获得合理的答案。