首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言捐款循環 scanf 換行符導致死循環:去除格式串中 \\n

     編輯:程式設計綜合問答

錯誤代碼

scanf("%d\n", &donation); // 格式串含 \n

原因

`%d\n` 讀取整數後**強制匹配空白字符 (包括換行、空格、Tab)**,若輸入流後續無非空白字符,`scanf` 會**一直阻塞等待**,導致程式卡住,無法進入下一次循環或退出判斷。

修正

scanf("%d", &donation); // 移除 \n,%d 自動跳過前導空白

補充

所有 `scanf` 格式串**不要**加 `\n`、`\r`、` ` 等顯式空白,除非極其特殊的解析需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved