C : timer inside while/loop + scanf?

标签 c

我如何在循环中执行计时器/当我内部有一个 scanf 时?

如果时间结束且用户未输入任何输入,则循环/while 结束!就像琐事一样..

while(30 sec)
{
scanf("%d,&try);
}

如果 30 秒结束,循环结束,并且在尝试内我有 -1!!

我只能使用 4 个包含..

#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#include <time.h>

tnx!

最佳答案

仅使用 C 标准库是不可能的,因此您列出的 4 个 header 是不够的。 scanf 将等待用户按 Enter 键,并且如果不使用平台特定功能或额外的库(隐藏平台特定功能),则无法在 30 秒后中断。

<小时/>

作为通用解决方案的指南,您需要一种从终端获取字符的方法,以便您还可以在特定时间后中断。因此,您将逐个字符地读取并将它们放入缓冲区,直到达到您的时间限制或直到用户按下 Enter 键(请注意,对于例如 getchar() 来说这是不可能的,因为即使它给你一个字符,它仍然会阻塞,直到用户按下回车键,然后一一给你输入的字符)。

然后,一旦你有一整行(或者可能直到空格,或者直到你读完 N 位数字,或者任何你想做的事情),使用 sscanfstrtol或任何解析字符串并获取所需整数的方法。

关于C : timer inside while/loop + scanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41115386/

相关文章:

c - fclose()/pclose() 可能会阻塞某些文件指针

c# - 如何获取每个进程的带宽?

通过C获取BIOS信息的常用方法

c - 无法使用 scanf() 将参数传递给函数

c++ - DLL 设计 : the DLL needs to access some of the application functions/data

c - 如何安全解析制表符分隔的字符串?

c - 为什么 main() 不能在 C 中声明为静态的?

c - Tokenizer 只打印第一个标记

图实现中的 C 运行时错误

python - 如何将 Python 列表格式化为已初始化的 C 数组?