C stdio fprintf() 函式
示例
寫入檔案
FILE *fptr;
// 開啟檔案以寫入模式
fptr = fopen("filename.txt", "w");
// 向檔案寫入一些文字
fprintf(fptr, "Some text");
// 關閉檔案
fclose(fptr);
自己動手試一試 »
定義和用法
fprintf()
函式將格式化的字串寫入檔案。
fprintf()
函式定義在 <stdio.h>
標頭檔案中。
格式說明符
format 字串可以包含 **格式說明符**,它們描述瞭如何在函式中表示傳遞給函式的其他引數。
格式說明符的形式為 %[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_t
或uintmax_t
型別。z
- 對於整數,期望size_t
型別。t
- 對於整數,期望ptrdiff_t
型別。L
- 對於浮點數,期望long double
型別。
specifier
- 必需。一個字元,指示如何表示引數資料。可能的字元列表如下表所示。
說明符列表
字元 | 說明符 | 描述 |
---|---|---|
d 或 i |
十進位制整數 | 將整數表示為十進位制整數。 |
u |
無符號十進位制整數 | 將整數表示為無符號十進位制整數。 |
o |
八進位制整數 | 將整數表示為八進位制整數。 "#" 標誌將用 "0" 作為字首。 |
x 或 X |
十六進位制整數 | 將整數表示為十六進位制整數。 "#" 標誌將用 "0x" 作為字首。如果使用 "X",則數字 A 到 F 以及字母 X 將以大寫形式顯示。 |
f 或 F |
浮點數 | 表示浮點數。如果使用 "F",則字母(例如 "nan" 的值)將以大寫形式表示。 "#" 標誌即使在沒有小數位數時也會強制顯示小數點。 |
e 或 E |
科學計數法 | 以科學記數法表示浮點數。如果使用 "E",則字母將以大寫形式表示。 "#" 標誌即使在沒有小數位數時也會強制顯示小數點。 |
g 或 G |
通用數字 | 使用 f 和 e 之間最短的表示法來表示浮點數。如果使用 "G",則它將在 F 和 E 之間進行選擇。 |
a 或 A |
十六進位制浮點數 | 使用十六進位制數字表示浮點數的內部表示。如果使用 "A",則數字以大寫形式表示。 |
c |
字元 | 表示一個字元。如果引數是整數,則它表示由整數指定的 ASCII 值的字元。 |
s |
字串 | 表示字串。 |
p |
指標 | 表示指標的記憶體地址,通常以十六進位制數字表示。 |
n |
無輸出 | 到目前為止已寫入檔案的字元數將被寫入引數。該引數必須是指向整數的指標。 |
% |
百分號 | 表示一個字面意義上的 "%" 字元。 |
關於如何使用格式說明符的各種示例,請參見 printf() 函式參考頁。
語法
fprintf(FILE * fptr, const char * format, arg1, arg2...);
引數值
引數 | 描述 |
---|---|
fptr | 必需。一個檔案指標,通常由 fopen() 函式建立。 |
format | 必需。一個字串,表示要寫入檔案的資料的格式。 |
arg1, arg2... | 可選。任意數量的其他引數,它們的值可以透過 format 引數中的說明符進行格式化並寫入檔案。 |
技術詳情
返回 | 一個 int 值,表示已寫入檔案的字元數。如果發生錯誤,則返回負數。 |
---|