如果没有输入,则在一定时间后退出循环

Jit*_* Zu 5 c

我只是想知道是否可能以及如何实现此功能,如果没有来自用户的输入,我们将退出循环.例如,如果用户在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)

Spa*_*key 1

尽管 time() 返回的 time_t 结构很可能是秒数,但您不应该对其执行数学运算。而是使用 difftime()

double difftime ( time_t time2, time_t time1 );
Run Code Online (Sandbox Code Playgroud)

计算 time1 和 time2 之间的秒差。

您不需要main()从内部打电话main(),我不知道为什么您会认为这是一个好主意。

另外,getchar()将等待按下某个键,因此不会在后台计算时间。