C:在/ loop + scanf里面有计时器吗?

时间:2016-12-13 07:08:00

标签: c

我怎样才能在循环中进行定时器/内部我有扫描?

如果时间结束且用户没有输入任何输入,则循环/结束时!像琐事..

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

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

我只能使用4个包含..

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

TNX!

2 个答案:

答案 0 :(得分:3)

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

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

然后,一旦你有一整行(或者可能直到空间,或者直到你读了N个数字,或者你想要做什么),使用sscanfstrtol或其他来解析字符串并得到你想要的整数。

答案 1 :(得分:0)

对于其他图书馆,这是可能的。 Look at this question.

Look here以kbhit为例。您将对此有一些限制,请参阅注释以获取详细信息。