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

C 語言標準 I/O:printf/scanf 格式化輸入輸出完全指南

     編輯:C 語言基礎

printf 格式化輸出

原型:`int printf(const char *format, ...);`
格式字符串 = 普通字符(原樣輸出)+ 格式規定符(`%` 開頭)。

常用格式規定符

符號含義
%d有符號十進制整數
%u無符號十進制整數
%f浮點數(預設 6 位小數)
%s字符串
%c單字符
%p指針地址
%e科學計數法浮點數
%x/%X十六進制整數
%o八進制整數
%g自動選擇 %f/%e 短者

寬度與精度控制

  • `%md`:最小寬度 m,右對齊,不足填空格。
  • `%m.nf`:總寬 m,小數位 n,右對齊。
  • `%-md`:左對齊。
  • `%0md`:前導填 0。
  • `%m.ns`:最長 n 字符,寬度 m 對齊。

長度修飾符

  • `l`:`%ld` long,`%lf` double(scanf 必須),`%lx` long hex。
  • `h`:`%hd` short。
  • `L`:`%Lf` long double。

scanf 格式化輸入

原型:`int scanf(const char *format, ...);`
參數必須為**地址**(`&var`),字符串/數組名本身即地址無需 `&`。
格式字符串可含:格式符、空白字符(跳過輸入中任意空白)、非空白字符(匹配並丟棄)。

scanf 陷阱

  • 連續 `%c` 會讀取換行符 → 用 `scanf(" %c", &c)` 前置空格跳過空白,或用 `getchar()`。
  • 緩衝區殘留換行導致後續輸入失效 → `fflush(stdin)`(非標準)或循環 `getchar()` 清理。

總結

掌握 `%` 格式符、寬度精度、長度修飾、地址傳遞、緩衝區處理,即可駕馭 C 標準 I/O 90% 場景。

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