在C ++睡眠期间停止input的收集?

有人提出了类似的Python问题。

如何在Python 3睡眠期间忽略用户input?

我将如何在C ++中做到这一点? 我正在使用这个睡眠命令,并希望继续使用它。

this_thread::sleep_for(chrono::seconds(4)); 

但是,它仍然会收集用户input,导致用户错过跳过的重要文本。 我怎样才能防止这个?

我在Windows 10上使用VS 2015 Express。

如果你“-1”这个问题,请评论为什么。

编辑

input如键盘input使用:

 _getch(); 

这是一个控制台应用程序。

希望有所帮助!

编辑

冲洗的问题是getch(); 在睡觉之后不会出现。 首先它睡觉,然后显示文本,然后它要求input。 但是,它仍然收集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(); 

睡觉之后,你可以…

 while (kbhit()) getch(); 

这看看是否有输入等待,如果是这样,调用getch()放弃一个字符。 冲洗并重复。

上帝知道MS是如何命名它们的功能的,但是如果你找不到_kbhit()<conio.h>尝试_kbhit()