我只是想知道是否可能以及如何实现此功能,如果没有来自用户的输入,我们将退出循环.例如,如果用户在1分钟后没有输入任何内容,我想退出循环.这是我的C代码:
#include <stdio.h>
#include <conio.h>
#include <time.h>
int main(void)
{
int x;
time_t end = time(0) + 60;
printf("Enter a number : ");
while (time(0) < end)
{
if((scanf("%d", &x)) != EOF || (getchar() != '\n'))
{
time_t end2 = time(0) + 60;
while(time(0) < end2);
main();
}
else
{
printf("%d", x);
main();
}
}
main();
}
Run Code Online (Sandbox Code Playgroud)
尽管 time() 返回的 time_t 结构很可能是秒数,但您不应该对其执行数学运算。而是使用 difftime()
double difftime ( time_t time2, time_t time1 );
Run Code Online (Sandbox Code Playgroud)
计算 time1 和 time2 之间的秒差。
您不需要main()从内部打电话main(),我不知道为什么您会认为这是一个好主意。
另外,getchar()将等待按下某个键,因此不会在后台计算时间。