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

C語言程式設計初步(二):printf 格式字符詳解與 putchar 輸出

     編輯:C 語言基礎

printf 格式字符完整規格


% [標誌] [最小寬度] [.精度] [長度] 類型

1. 類型字符

字符意義
d帶符號十進制整數(正數不輸出 +)
o八進制無符號整數(無前綴)
x十六進制無符號整數(無前綴)
u十進制無符號整數
f小數形式輸出實數
e指數形式輸出實數
g%f 或 %e 中較短者
c單字符
s字符串

2. 標誌字符

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

3. 輸出最小寬度

十進制整數。實際位數超過寬度按實際輸出;不足時左側填空格(或配合 0 標誌填 0)。

4. 精度

.數字。數值指定小數位數;字符串指定最大輸出字符數;超過部分截斷。

5. 長度

  • h:短整型(%hd)
  • l:長整型(%ld)或雙精度(%lf,同 %f)

綜合範例


void main() {
    int a=15; float b=138.3576278; double c=35648256.3645687; char d='p';
    printf("a=%d,%5d,%o,%x\n", a,a,a,a);
    // a=15,   15,17, f
    printf("b=%f,%lf,%5.4lf,%e\n", b,b,b,b);
    // b=138.357628,138.357628,138.3576,1.3836e+02
    printf("c=%lf,%f,%8.4lf\n", c,c,c);
    // c=35648256.364569,35648256.364569,35648256.3646
    printf("d=%c,%8c\n", d,d);
    // d=p,       p
}

引數求值順序

Turbo C 採自右向左求值,但輸出順序仍左至右。


void main() {
    int i=8;
    printf("%d\n%d\n%d\n%d\n%d\n%d\n", ++i, --i, i--, i++, -i--);
}
// 求值順序:-i-- → i++ → i-- → --i → ++i
// 輸出:8 7 8 7 -8  (但順序左至右顯示)

警告: 同一 printf 中多次修改同一變數屬未定義行為,不同編譯器結果不同,實務上應避免。

putchar 字符輸出函數


putchar(字符變數);
putchar('A');     // 輸出 A
putchar('\n');    // 換行(執行控制功能,不顯示字符)

需 #include <stdio.h>。適用於單字符輸出,比 printf("%c") 更輕量。

scanf 格式化輸入函數


scanf("格式控制字符串", 位址表列);
  • 格式字符同 printf,但無非格式字符提示功能
  • 位址表列:各變數位址(&a、&b...)
  • 必須加 & 取址,否則錯誤

範例


void main() {
    int a,b,c;
    printf("input a,b,c\n");
    scanf("%d%d%d", &a, &b, &c);
    printf("a=%d,b=%d,c=%d", a,b,c);
}
// 輸入: 7 8 9 (空格或換行分隔)
// 輸出: a=7,b=8,c=9
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved