選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C stdio printf() 函式

❮ C stdio 庫


示例

輸出一個字串

printf("Hello World!");
自己動手試一試 »

定義和用法

printf() 函式將格式化的字串寫入控制檯。

printf() 函式定義在 <stdio.h> 標頭檔案中。

注意: 更準確地說,它寫入由 stdout 指定的位置,通常是控制檯,但它也可以被配置指向檔案或其他位置。

格式說明符

格式字串可以包含格式說明符,這些說明符描述了要傳遞到函式的其他引數的表示位置和方式。

格式說明符的形式為 %[flags][width][.precision][length]specifier。 [方括號]中的元件是可選的。

每個元件的解釋

  • flags - 可選。以下任意字元的序列
    • - - 使輸出左對齊,透過在右側新增填充空格而不是左側。
    • # - 根據轉換顯示格式化資料的備用表示形式。
    • + - 使正數始終以 "+" 作為字首。
    • - (一個空格字元) 在正數前加上空格,主要目的是使數字能夠與負數對齊。
    • 0 - 用零填充數字的左側。
  • width - 可選。一個整數,指定輸出應占用的最小字元數。如果需要,會在右側新增空格以達到此數字,如果使用了 - 標誌,則會在左側新增空格。如果使用 * 星號,則寬度由要表示的引數之前的引數給出。
  • .precision - 可選。一個 . 後面跟著一個整數,指示在格式化資料中顯示多少個小數位數。
  • length - 可選。一個字元序列,它改變引數的預期資料型別。它可以是以下之一
    • hh - 對於整數,期望 char 型別。
    • h - 對於整數,期望 short int 型別。
    • l - 對於整數,期望 long int 型別。
             對於字元,期望 wint_t 型別。
             對於字串,期望 wchar_t* 型別。
    • ll - 對於整數,期望 long long int 型別。
    • j - 對於整數,期望 intmax_tuintmax_t 型別。
    • z - 對於整數,期望 size_t 型別。
    • t - 對於整數,期望 ptrdiff_t 型別。
    • L - 對於浮點數,期望 long double 型別。
  • specifier - 必需。一個字元,指示引數的資料應如何表示。可能的字元列表顯示在下表中。

說明符列表

字元 說明符 描述
di 十進位制整數 將整數表示為十進位制整數。
u 無符號十進位制整數 將一個整數表示為無符號十進位制整數。
o 八進位制整數 將整數表示為八進位制整數。 "#" 標誌將用 "0" 作為字首。
xX 十六進位制整數 將整數表示為十六進位制整數。 "#" 標誌將用 "0x" 作為字首。如果使用 "X",則數字 A 到 F 以及字母 X 將以大寫形式顯示。
fF 浮點數 表示浮點數。如果使用 "F",則字母(如 "nan" 的值)將以大寫形式表示。 "#" 標誌將強制顯示小數點,即使沒有小數位。
eE 科學計數法 用科學計數法表示浮點數。如果使用 "E",則字母將以大寫形式表示。 "#" 標誌將強制顯示小數點,即使沒有小數位。
gG 通用數字 對浮點數使用 fe 之間的最短表示形式。如果使用 "G",則它在 FE 之間選擇。
aA 十六進位制浮點數 顯示浮點數的內部表示,帶有十六進位制數字。如果使用 "A",則數字將以大寫形式表示。
c 字元 表示一個字元。如果引數是整數,則表示整數指定的 ASCII 值的字元。
s 字串 表示一個字串。
p 指標 表示指標的記憶體地址,通常用十六進位制數字表示。
n 無輸出 到目前為止已列印的字元數將被寫入引數。引數必須是指向整數的指標。
% 百分號 表示一個字面量 "%" 字元。

語法

printf(const char * format, arg1, arg2...);

引數值

引數 描述
format 必需。一個字串,表示要寫入檔案的資料的格式。
arg1, arg2... 可選。任何數量的其他引數,它們的值可以使用格式引數中的說明符進行格式化並列印到控制檯。

技術詳情

返回 一個 int 值,表示列印的字元數。如果發生錯誤,則返回負數。

更多示例

示例

表示各種型別的整數

char var1 = 102;
short int var2 = 2024;
int var3 = 95;
long int var4 = 212;
long long int var5 = 1200L;
printf("%hhd %hd %d %ld %lld", var1, var2, var3, var4, var5);
自己動手試一試 »

示例

以多種方式表示整數

int value = 1024;
printf( "%d \n", value); // 整數
printf( "%o \n", value); // 八進位制
printf( "%x \n", value); // 十六進位制
printf("%#o \n", value); // 帶 "0" 字首的八進位制
printf("%#X \n", value); // 帶 "0X" 字首的大寫十六進位制
自己動手試一試 »

示例

以多種方式表示浮點數

float myFloat = 19.99;
printf("%f \n", myFloat); // 浮點數
printf("%e \n", myFloat); // 科學計數法
printf("%g \n", myFloat); // 最佳
printf("%.2f \n", myFloat); // 2 位小數
printf("%8.2f \n", myFloat); // 8 個字元寬,2 位小數
printf("%08.2f \n", myFloat); // 零填充,8 個字元寬,2 位小數
自己動手試一試 »

示例

使用 %n 說明符測量字串長度

// 為字串預留 20 位元組記憶體
char myString[20] = "Hello World!\0";
int memorySize = sizeof(myString);
int stringSize;

// 列印字串並使用 %n 進行測量
printf("%s%n\n", myString, &stringSize);

// 列印字串的大小
printf("Memory size: %d\n", memorySize);
printf("String size: %d\n", stringSize);
自己動手試一試 »

❮ C stdio 庫

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援