【发布时间】:2012-07-31 11:06:34
【问题描述】:
我正在制作一个测验程序。所以我想要的是每当用户提出任何问题时,他有 30 秒的时间来回答它。在这 30 秒内,我希望以 1 秒的间隔发出哔声('\a')。现在我想要的是,一旦用户输入任何输入,这种哔声就应该停止。我创建了这个小函数来产生 30 秒的哔声void beep(){ for(int i=0;i<30;i++){cout<<"\a"; Sleep(1000); }
}
但是我不知道如何在用户输入他/她的答案后立即停止它,因为一旦我调用它,在它结束之前什么都做不了。
任何人都可以提供任何解决方法吗?
【问题讨论】:
-
听起来像是多线程程序的任务...如果您是 C++ 初学者,我认为这不是一个很好的例子
-
可能存在不使用线程(或至少不显式使用线程)的平台特定方式。您使用什么操作系统?你愿意使用任何额外的库吗? (不暗示任何特定的解决方案,只是有用的信息)。
-
我对 windows 不是很感兴趣,但我相信它有一些非阻塞输入功能可用......我会看看,看看我能想出什么。