#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();}解决方法 使用select()函数为scanf设置超时
以下代码是如何使用它的示例.
#include <stdlib.h>#include <stdio.h>#include <sys/time.h>int main(voID){ int x; fd_set set; struct timeval timeout = {0}; FD_ZERO(&set); while(1) { timeout.tv_sec = 30; FD_SET(fileno( stdin ),&set); printf ("enter a number:"); fflush (stdout); if (select(FD_SETSIZE,&set,NulL,&timeout)) { scanf("%d",&x); printf("The number you put is %d\r\n",x); } else { printf("\r\nTimeout: Stop reading\r\n"); break; } }}总结
以上是内存溢出为你收集整理的如果没有输入,则在一定时间后退出循环全部内容,希望文章能够帮你解决如果没有输入,则在一定时间后退出循环所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)