C语言如何实现一段时间内没有输入则跳过输入?

SOL_night-avatar

SOL_night

编程小白我的理解是看环境和需求,例如等待时间是否要精确,要么就用自带时间函数或者timer控件之类的,要么就获取系统时间之类的,要么就单纯空循环,但是不同机能时间不一样
Wolf឵-avatar

Wolf឵

这种得要异步或者多线程。用go写最简单。c的话比较头疼。
Sunny🌟-avatar

Sunny🌟

标题的问题可以用信号解决,描述里的问题可以用多线程+信号解决
seann-avatar

seann

没有输入的情况下保持程序继续运行,有输入则读取输入,主要是读取方向键>>
for (;;)
{
int ch = getch();
if (ch = XXXX){
// 处理方向键
}
else{
// 其他输入默认不处理
continue;
}
}
HasHshy-avatar

HasHshy

自动控制类。
while1
输入函数返回值 有输入返回1 无输入返回0

if 返回0 则 A++ 如果A大于某个数 则break跳出循环 运行下一步
if返回1 则直接运行下一步
Eli-avatar

Eli

子线程循环读取输入,检测到输入就加入队列。
主线程循环从队列取出然后处理,如队列为空就执行其它分支。
这样不会丢失输入。
BonBrod-avatar

BonBrod

[quote][tid=25597753]Topic[/tid] Post by [uid=62139656]我问你就答-AC娘[/uid] (2021-02-19 03:07):

或者在没有输入的情况下保持程序继续运行,有输入则读取输入,主要是读取方向键[/quote]盲猜是想做类似游戏的小项目吧,正经实现是异步或者多线程,小项目应该不讲究那么多,具体实现忘了[s:ac:晕] 学的都还给学校了。。