如果用户在休眠期间按下任何键(毫秒),我想要暂停一个while循环,就像在那些毫秒期间按下任何键时停止一样。我怎么做? 循环看起来像这样:
while (1)
{
r = rand() % 5501 + 1000;
Sleep(r);
cout << "NOW!\n";
t = clock() / 1000;
system("pause");
if (clock() / 1000 < t + 1)
{
cnt++;
cout << "Aaaaand...\n";
}
else break;
}
平台:Windows
答案 0 :(得分:2)
没有C ++语言解决方案可以做到这一点。
您必须找到一个特定于平台的功能,该功能会一直等到超时输入可用。调用该函数而不是Sleep
(这也不是C ++函数)。从该函数返回时,检查返回代码以查看是否返回,因为有可用输入(用户按下某个键),或超时(用户没有按任何键)。
答案 1 :(得分:2)
您可以使用kbhit()
。试试这个:
bool exit = false;
while(!exit){
if(kbhit())
exit = true;
}
如果您正在使用Windows,这将有效。如果你使用linux,你也可以从http://linux-sxs.org/programming/kbhit.html复制粘贴kbhit.h和kbhit.cpp并将其添加到你的项目中。