养猪能手 发表于 2018-6-4 17:39:26

规定时间内输入

int i=5;
等待3秒
if 用户输入,则把值赋给i,输出i
else 则直接输出i=5
//用户在三秒内可以输入也可以不输入
求用c语言实现

BngThea 发表于 2018-6-4 18:42:32

ctime库了解一下

养猪能手 发表于 2018-6-6 22:02:14

BngThea 发表于 2018-6-4 18:42
ctime库了解一下

时间类函数也做不了

wjp 发表于 2018-6-7 11:49:53

你可以用kbhit()函数

人造人 发表于 2018-6-7 14:58:40

不知这样是否可行

#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdarg.h>

int TimeoutScanf(int sec, const char *fmt, ...)
{
        time_t begin = time(NULL);
        time_t end = begin + sec;
        while(1)
        {
                if(time(NULL) == end)
                        break;

                if(kbhit())
                {
                        va_list ap;
                        va_start(ap, fmt);
                        int ret = vscanf(fmt, ap);
                        va_end(ap);
                        return ret;
                }
        }
        return -1;
}

int main(void)
{
        int x = 0;
        TimeoutScanf(3, "%d", &x);
        printf("%d\n", x);
       
        return 0;
}

养猪能手 发表于 2018-6-30 14:38:04

不行哎
页: [1]
查看完整版本: 规定时间内输入