C 标准输入输出库 fprintf() 函数
例子
写入文件
FILE *fptr;
// 以写入模式打开文件
fptr = fopen("filename.txt", "w");
// 向文件写入一些文本
fprintf(fptr, "Some text");
// 关闭文件
fclose(fptr);
亲自尝试 »
定义和用法
The fprintf()
函数将格式化的字符串写入文件。
The fprintf()
函数定义在 <stdio.h>
头文件中。
格式化说明符
格式字符串可以包含格式化说明符,用于描述在何处以及如何表示传递到函数的其他参数。
格式化说明符的格式为 %[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 值,表示写入文件的字符数。如果发生错误,则返回负数。 |
---|