C語言鍵盤輸入緩衝區問題

 

 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章