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

Visual Studio 中 scanf_s 導致只輸出一行的原因與修正

     編輯:程式設計綜合問答

現象描述

在 Visual Studio 使用 scanf_s 讀取輸入時,程式只輸出第一行隨後結束,後續輸入無效。

原因

scanf_s 的格式字串若包含 \n(換行符),會導致掃描函數持續等待匹配換行符,造成輸入流阻塞,實際上只處理了第一個輸入項目。

修正方法

// 錯誤寫法
scanf_s("%d\n", &a);

// 正確寫法:移除格式字串中的 \n
scanf_s("%d", &a);

scanf_s 會自動跳過空白字元(含換行、空格、Tab),無需在格式字串中額外添加 \n。

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