1 #include <stdio.h> 2 3 int main() { 4 5 int num=0;//初始化清零 6 7 printf("请输入一个数字:"); 8 9 while (!scanf("%d",&num)) { 10 11 scanf("%*[^ ]"); 12 13 scanf("%*c"); 14 15 printf("输入格式错误! 请输入一个数字:"); 16 17 } 18 19 printf("输入正确!num=%d ",num); 20 21 return 0; 22 23 }
参考:https://www.cnblogs.com/bossren/p/6369330.html
1 #include <stdio.h> 2 3 int main( void ) 4 { 5 int i, c; 6 7 for ( ; ; ) 8 { 9 fputs("Please input an integer: ", stdout); 10 scanf("%d", &i); 11 if ( feof(stdin) || ferror(stdin) ) 12 { /* 如果用户输入文件结束标志(或文件已被读完), */ 13 /* 或者发生读写错误,则退出循环 */ 14 /* do something */ 15 break; 16 } 17 /* 没有发生错误,清空输入流。 */ 18 /* 通过 while 循环把输入流中的余留数据“吃”掉 */ 19 while ( (c = getchar()) != '/n' && c != EOF ) ; 20 /* 使用 scanf("%*[^/n]"); 也可以清空输入流, */ 21 /* 不过会残留 /n 字符。 */ 22 printf("%d/n", i); 23 } 24 25 return 0; 26 }
参考:http://www.360doc.com/content/13/1020/10/9206388_322737032.shtml