辦法一:
1 scanf("%d", value); 2 setbuf(stdin, NULL);
將 stdin 輸入流由默認緩沖區轉為無緩沖區。這樣 scanf() 輸入完畢后,緩沖區內的東西就消失了。
辦法二:
1 while ((c = getchar()) != EOF && c != '\n');
使用 getchar() 不斷獲得緩沖區內的內容,直到緩沖區空為止。建議使用這種方法。
辦法三:
1 fflush(stdin);
這種方法不在 C 和 C++ 標准定義里,並非所有編譯器都支持這個函數(例如Linux下的GCC就不支持),所以代碼的可擴展性較差。