c - 用 C 语言以编程方式终止 scanf

标签 c linux scanf

我在 Linux 操作系统上使用 C 语言进行编程。我正在编写一个程序来扫描用户的输入。但是,我希望 scanf 有一定的时间限制。例如,如果用户在 10 秒内没有在键盘上输入任何内容,它将跳过 scanf 并转到下一行。我正在使用 alarm(10) 等待 10 秒,但是当我转到 alarmhandler 时,我不知道该怎么做才能跳过 scanf。

是否有跳过 scanf 或例如将\n 写入输入缓冲区的函数?

最佳答案

您可以使用 select(2)poll(2)指定超时并检查 stdin 是否有输入。

关于c - 用 C 语言以编程方式终止 scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4058902/

相关文章:

c++ - 如何在程序和库之间传递一个值(使用 mkfifo 等)?

C - 读取文件错误..!f_in 为空,不知道为什么?

c - NetLocalGroupAddMembers 返回成功,但未按预期工作

c - <sys/queue.h> 库中 TAILQ 用法的最小示例

c - +99如何计算 float scanf 中的重复数字

c - C9 9's "restrict"关于指向指针的指针的语义是什么?

arrays - 根据数组验证字符串

linux - 排序并删除重复项

c - 使用 scanf() 获取的整数在 C 中未获得其预期值

C - fscanf 混合数字和静态文本