作為一個一般規則, 你不能混用 scanf() 和 gets(), 或任何其它的輸入例程的調用; scanf 對換行符的特殊處理幾乎一定會帶來問題。要麼就用 scanf() 處理所有的 輸入, 要麼乾脆不用。
參見問題 12.18 和 12.20。
參考資料: [ISO, Sec. 7.9.6.2]; [H&S, Sec. 15.8 pp. 357-64]。