C++ cin 按键事件

Luk*_*ich 6 c++ keypress break infinite-loop onkeypress

我相信这是一个非常简单的问题,但我找不到一个简单的答案。我有一个无限循环,例如while(1), for(;;),我需要在按键时中断循环。什么是最简单的方法来做到这一点?

PS:我不能使用getch, cin.ignore, 或者cin.get因为它会停止循环。

Bar*_*icz 3

好吧,你想要的是异步输入。wait for Enter提供的所有方法cin。为此,您必须使用特定于系统的函数,或者使用可以为您完成此操作的库。

您需要做的不仅是在 while 循环中处理逻辑,还要从操作系统的消息管道中监听。如果您想了解有关该产品的更多信息,请发表评论。

编辑:还有另一种方法,但我不会推荐它,因为我相信它可能是不可移植的。以下代码在VS2012RC下编译运行。

#include<iostream>
#include<conio.h>

using namespace std;

int main()
{
   cout << "Enter a character";
   getch();
}
Run Code Online (Sandbox Code Playgroud)