13.24 既然 fflush() 不能, 那麼怎樣才能清除輸入呢?

這取決於你要做什麼。如果你希望丟掉調用 scanf() (參見問題 12.16 - 12.17) 之後所剩下的換行符和未預知的輸入, 你可能需要重寫你的  scanf() 或者換掉它, 參見問題 12.18。或者你可以用下邊這樣 的代碼吃掉一行中多餘的字符
	while((c = getchar()) != '\n' && c != EOF)
		/* 丟棄 */ ;
你也可以使用 curses 的 flushinp() 函數。

沒有什麼標準的辦法可以丟棄標準輸入流的未讀取字符, 即使有, 那也不夠, 因為未讀取字符也可能來自其它的操作系統級的輸入緩衝區。如果你希望嚴格 丟棄多輸入的字符 (可能是預測發出臨界提示), 你可能需要使用系統相關的 技術; 參加問題 19.1 和 19.2

參考資料: [ISO, Sec. 7.9.5.2]; [H&S, Sec. 15.2]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)