#include <stdio.h> #include <string.h>#include <time.h>#include <stdlib.h>int main(){ char st[10]; printf ("Please enter a line of text : "); time_t end = time(0) + 5; //5 seconds time limit. while(time(0) < end) { scanf("%s",&st); if(st != NulL) { printf ("Thank you,you entered >%s<\n",st); exit(0); } } main();}解决方法 这是一个示例程序,显示如何在stdin文件描述符上使用O_NONBLOCK标志.
#include <stdio.h>#include <time.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#define input_LEN 10int main(){ printf ("Please enter a line of text : "); fflush(stdout); time_t end = time(0) + 5; //5 seconds time limit. int flags = fcntl(STDIN_fileNO,F_GETFL,0); fcntl(STDIN_fileNO,F_SETFL,flags | O_NONBLOCK); char answer[input_LEN]; int pos = 0; while(time(0) < end) { int c = getchar(); /* 10 is new line */ if (c != EOF && c != 10 && pos < input_LEN - 1) answer[pos++] = c; /* if new line entered we are ready */ if (c == 10) break; } answer[pos] = ''; if(pos > 0) printf("%s\n",answer); else puts("\nSorry,I got tired waiting for your input. Good bye!");}总结
以上是内存溢出为你收集整理的在标准C的时限内输入全部内容,希望文章能够帮你解决在标准C的时限内输入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)