首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C語言資料輸入輸出(一):scanf 格式化輸入函數詳解

     編輯:C 語言基礎

scanf() 格式化輸入函數

C 語言沒有專門的輸入輸出語句,所有 I/O 操作均透過標準庫函數實現。scanf() 從鍵盤讀取資料,按指定格式賦值給對應變數。

語法格式

scanf("控制字串", 輸入項列表);
  • 控制字串:由格式說明與普通字符組成,必須用雙引號括起
  • 輸入項列表:一個或多個變數位址,以逗號分隔

關鍵點: 每個變數前必須加取址運算子 &(如 &a),否則會導致錯誤結果。

格式說明組成

% [修飾符] 格式字符

常用格式字符對照表:

格式字符輸入資料類型對應變數類型
d十進制整數int *
o八進制整數int *
x十六進制整數int *
u無符號十進制整數unsigned int *
f / e實數(小數/指數形式)float *
lf雙精度實數double *
c單個字符char *
s字符串(以空白結束)char *

修飾符說明

  • *:跳過該輸入項,不賦值(如 %*d)
  • 寬度:指定最大讀取字符數(如 %5d 只讀 5 位數字)
  • h:short 型(%hd)
  • l:long 型(%ld)或 double 型(%lf)

範例

int a, b; float c;
scanf("%d %f", &a, &c);      // 讀整數與浮點數,以空白分隔
scanf("%3d%2d", &a, &b);     // 輸入 12345 → a=123, b=45
scanf("%*d %d", &a);         // 輸入 10 20 → 跳過 10,a=20

常見錯誤與注意事項

  1. 忘記加 & 是初學者最常見的錯誤
  2. 輸入類型必須與變數類型一致
  3. 控制字串中無非格式字符時,輸入項間以空白、Tab 或換行分隔
  4. 讀取字符(%c)時,若格式字串無空格,所有字符(含空白)均視為有效輸入
  5. scanf 無精度控制(如 %5.2f 非法)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved