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

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

     編輯:C 語言基礎

printf() 格式化輸出函數

printf() 按控制字串規定格式,向預設輸出裝置(通常是螢幕)輸出資料。

語法格式

printf("控制字串", 輸出項列表);
  • 輸出項可以是常數、變數、運算式
  • 類型、個數必須與控制字串中格式字符一一對應
  • 控制字串由格式說明與普通字符組成

格式說明組成

% [標誌] [最小寬度] [.精度] [長度] 格式字符

常用格式字符

字符輸出類型
d / i帶符號十進制整數
o八進制無符號整數(不輸出前綴)
x / X十六進制無符號整數(不輸出前綴)
u十進制無符號整數
f小數形式輸出單/雙精度實數
e / E指數形式輸出單/雙精度實數
g / G以 %f 或 %e 中較短者輸出
c單個字符
s字符串
p指標位址

標誌字符

標誌意義
-左對齊,右側填空格
+輸出正負號(正數加 +)
空格正數前加空格,負數加 -
#對 o 加前綴 0;對 x 加 0x;對 e/f/g 強制顯示小數點

寬度與精度

  • 最小寬度:十進制整數。實際位數超過寬度時按實際輸出;不足時左側填空格(或配合 0 標誌填 0)
  • 精度:以 . 開頭。對數值指定小數位數;對字符串指定最大輸出字符數
  • 動態寬度/精度:使用 * 由引數提供(如 printf("%.*f", 3, 1.23456) 輸出 1.235)

長度修飾符

  • h:short int(%hd)
  • l:long int(%ld)或 double(%lf,與 %f 同)
  • L:long double(%Lf)

範例程式與輸出

int a = 1023;
long int b = 2222;
short int c = 123;
unsigned int d = 1234;
char e = 'x';
float f = 3.1415926535898;
double g = 3.1415926535898;

printf("a=%d\n", a);      // 1023
printf("a=%o\n", a);      // 1777
printf("a=%x\n", a);      // 3ff
printf("b=%ld\n", b);     // 2222
printf("c=%d\n", c);      // 123
printf("d=%u\n", d);      // 1234
printf("e=%c\n", e);      // x
printf("f=%f\n", f);      // 3.141593
printf("g=%f\n", g);      // 3.141593

引數求值順序

不同編譯器求值順序可能不同(Turbo C 為自右向左)。例如:

int i = 8;
printf("%d %d %d %d %d", ++i, --i, i--, i++, -i--);
// Turbo C 輸出:8 7 8 7 -8

求值順序影響結果,但輸出順序仍為左至右。編寫程式時避免在同一 printf 中對同一變數多次修改。

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