【发布时间】:2016-12-07 07:46:27
【问题描述】:
我正在使用 C 语言编写一个项目,在 Windows 中使用 CodeBlocks,其中我在控制台中显示了一些移动字符(我不想使用图形功能)。为此,我打印字符并稍等片刻,然后使用 system(cls) 并移动字符的位置,然后再次打印字符,所以它看起来像在移动。
我要补充的是:如果用户按下上键,字符会向上移动,否则它们会继续移动。我尝试使用 getchar(),但问题是它等待确保命中一个字符,没有任何超时。因此,如果没有击中,程序将停止显示移动的字符。有没有办法为 getchar 添加超时功能或使用不同的方法?
【问题讨论】:
-
我不确定,但我认为您应该将
STDIN重定向到一个文件并尝试读取该文件。 -
看看
select。您可以为输入提供超时,但您可能需要将键盘置于原始、无缓冲模式。 -
您可能希望为此使用一些非标准的控制台 API。纯标准 C 太粗了。
-
@DavidC.Rankin
select在 Windows 上不能很好地工作是真的吗? -
亲爱的,感谢您的 cmets。我编辑了我的问题以澄清我在 Windows 中使用 CodeBlocks。 @Lundin:请您澄清更多,或给出提示,例如,..
标签: c