我如何在循环中执行计时器/当我内部有一个 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 位数字,或者任何你想做的事情),使用 sscanf
或 strtol
或任何解析字符串并获取所需整数的方法。
关于C : timer inside while/loop + scanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41115386/