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

C語言格式化輸出printf詳解:格式控制、場寬精度、動態場寬與複數加法實戰

     編輯:關於C語言

printf 函數:格式化輸出的核心工具

printf 是 C 語言最常用的輸出函數,掌握其控制字符串格式、修飾符、場寬精度控制,能實現靈活多樣的輸出效果。

一、基本語法與控制字符串構成


printf("控制字符串", 輸出項列表);
  • 輸出項:常量、變量、表達式,類型個數與格式字符一一對應,逗號分隔。
  • 控制字符串:雙引號括起,由格式說明和普通字符組成。

二、格式說明完整語法


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

常用格式字符表:

字符輸出類型示例
d/i有符號十進制整數%d
o八進制無符號整數%o
x/X十六進制無符號整數%x
u十進制無符號整數%u
c單字符%c
s字符串%s
f浮點數(小數形式)%f
e/E浮點數(指數形式)%e
g/G自動選擇 f 或 e 中較短者%g
p指針地址%p

三、場寬與精度控制規則

  • 場寬:最小輸出寬度。數據實際寬度大於場寬時,按實際寬度輸出(整數);浮點數四捨五入到指定精度。
  • 精度:.數字。對浮點數指定小數位數;對字符串限制最大字符數。
  • 標誌:-左對齊,+顯示符號,0前導填零,空格正數前加空格,#替代形式(如 %#x 輸出 0x 前綴)。

示例:12.34567 的不同輸出


%5.2f  → 12.35   (場寬5, 精度2, 四捨五入)
%2.1f  → 12.3   (場寬小於整數位,按實際位數輸出,但保留1位小數)

四、動態場寬:運行時指定寬度


int i = 123;
printf("%*d", 5, i);  // * 由參數 5 指定場寬,輸出 "  123"

場寬可由變量動態決定,極大增強靈活性。

五、綜合演示程序


int a=1023; long b=2222; short c=123; unsigned 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 (默認6位小數)
printf("g=%f\n", g);   // 3.141593

六、字符輸入輸出函數 getchar / putchar


char ch = getchar();  // 讀取鍵盤單字符
putchar(ch);          // 輸出單字符,等價 printf("%c", ch)
printf("%d\n", ch);   // 輸出 ASCII 碼
  • 需 #include <stdio.h>。
  • putchar 僅接受單字符,不能輸出字符串。

七、實戰案例:復數加法計算器


float a1,b1,a2,b2; char ch;
printf("Complex Addition\n");
printf("First complex:\nReal: "); scanf("%f",&a1);
printf("Imag: "); scanf("%f",&b1);
printf("%.2f+i%.2f\n",a1,b1);

printf("Second complex:\nReal: "); scanf("%f",&a2);
printf("Imag: "); scanf("%f",&b2);
printf("%.2f+i%.2f\n",a2,b2);

printf("Sum: %.3f+i%.3f\n", a1+a2, b1+b2);
printf("Press Enter..."); ch=getchar(); ch=getchar(); // 吸收換行

運行效果: 友好提示輸入實部虛部,格式化輸出復數與和,最後暫停等待用戶確認。

精通 printf 格式控制的每一個修飾符、動態場寬技巧、字符級 I/O 配合,能讓程序輸出既專業又友好,是 C 語言工程實踐的基本功。

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