提出了类似的Python问题。
How to ignore user input during sleep in Python 3?
我如何在C ++中这样做?我正在使用这个睡眠命令,并希望继续使用它。
this_thread::sleep_for(chrono::seconds(4));
但是,它仍然会收集用户输入,这会导致用户错过他们跳过的重要文本。我该如何防止这种情况?
我在Windows 10上使用VS 2015 Express。
如果你“-1”这个问题,请评论原因。
修改
使用以下方式输入键盘输入:
_getch();
这是一个控制台应用程序。
希望有所帮助!
修改
刷新的问题是getch();睡觉后不会出现。首先它睡觉,然后它显示文本,然后它要求输入。但是,它仍以某种方式收集getch();在文本显示之前!
除非我遗漏了什么......
看起来像这样
cout << "Wait 4 Seconds";
this_thread::sleep_for(chrono::seconds(4));
cout << "More text here!";
cout << "\n Press any key to go on";
_getch();
修改 你的意思是把睡眠放在一个线程中?我之前从未使用过线程,但我只是阅读它,我会试一试......
回答编辑后 最终守则如下:
cout << "Wait 4 Seconds";
this_thread::sleep_for(chrono::seconds(4));
while (_kbhit())
{_getch();}
cout << "More text here!";
cout << "\n Press any key to go on";
_getch();
答案 0 :(得分:2)
睡觉后,你可以......
// encode
new Buffer("Hello World").toString('base64');
//=> SGVsbG8gV29ybGQ=
// decode
new Buffer("SGVsbG8gV29ybGQ=", 'base64').toString('ascii');
//=> Hello World
这会看到是否有输入等待,如果是,请调用while (kbhit())
getch();
来丢弃一个字符。冲洗并重复。
上帝知道MS如何命名他们的功能,但如果你找不到getch()
kbhit()
<conio.h>
,请{/ 3}}。