如何在C中获得最大的getchar等待时间

时间:2016-12-07 07:46:28

标签: c

我正在用C编写一个项目,使用Windows中的CodeBlocks,我在控制台中显示一些移动的字符(我不想使用图形功能)。为此,我打印字符并等待一点,然后使用系统(cls)并移动字符的位置,再次打印字符,所以它看起来像移动。

我想要添加的是:如果用户点击上键,字符会向上移动,否则它们会继续移动。我试图使用getchar(),但问题是它等待确保一个字符被命中,没有任何超时。因此,如果没有命中,程序将停止显示移动的字符。有没有办法为getchar添加超时功能或使用不同的方法?

3 个答案:

答案 0 :(得分:3)

没有便携的方法可以做到这一点。

在Posix兼容系统上,您可以使用add_filter('wpseo_title', 'filter_product_wpseo_title'); function filter_product_wpseo_title() { return 'hello'. $_GET[$mysite_slugs['product-brand']] .'hello'; }; } 超时检查输入是否可从系统句柄0(过程标准输入)获得。然后,您可以使用add_filter('wpseo_title', 'filter_product_wpseo_title'); function filter_product_wpseo_title() { $productbrand = $_GET[$mysite_slugs['product-brand']]; return 'hello'. $productbrand .'hello'; }; } 获取待处理的输入。

答案 1 :(得分:1)

在Windows中,您可以使用旧的<conio.h>功能:

但使用这些功能并不是真正可移植的。您可以使用类似ncurses的内容来执行您想要的操作。对于Windows,存在一个好的库:PDCurses

答案 2 :(得分:0)

您可以尝试使用setvbuf将缓冲区与stdin关联,然后查看缓冲区的内容以检查用户是否输入了任何内容而不是调用getch