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("%*[^\n]"); 12 13 scanf("%*c"); 14 15 printf("輸入格式錯誤!\n請輸入一個數字:"); 16 17 } 18 19 printf("輸入正確!num=%d\n",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