C++ fprintf() 格式化输出到文件
fprintf() 原型
int fprintf(FILE* stream, const char* format, ...);
fprintf()
函数将由
format
指向的字符串写入流
stream
。字符串
format
可能包含以 % 开始的格式说明符,这些格式说明符被传递给
fprintf()
函数作为额外参数的变量值替换。
它定义在
<cstdio>
头文件中。
fprintf() 参数
stream
:指向输出文件流的指针,内容将写入该流。
format
:指向以空字符结尾的字符串的指针,该字符串被写入文件流。它由字符组成,包括可选的以 % 开始的格式说明符。
格式说明符由相应变量的值替换,这些变量紧随格式字符串之后。
格式说明符包括以下部分:
前导的 % 符号
Flags
:可选的一个或多个标志,修改转换行为。
-
:在字段内左对齐结果。默认为右对齐。
+
:结果的符号附加在值的开头,即使是正结果。
#
:执行转换的替代形式。
0
:用于整数和浮点数。使用前导零而不是空格填充数字。
Width
:可选的下划线或整数值,用于指定最小宽度字段。
Precision
:可选字段,由 . 后跟下划线或整数或不指定,用于指定精度。
Length
:可选长度修饰符,指定参数的大小。
Specifier
:转换格式说明符。可用的格式说明符如下:
格式说明符 | 描述 |
---|---|
% | 打印 % |
c | 写入单个字符 |
s | 写入字符字符串 |
d 或 i | 将有符号整数转换为十进制表示 |
o | 将无符号整数转换为八进制表示 |
X 或 x | 将无符号整数转换为十六进制表示 |
u | 将无符号整数转换为十进制表示 |
F 或 f | 将浮点数转换为十进制表示 |
E 或 e | 将浮点数转换为十进制指数记法 |
A 或 a | 将浮点数转换为十六进制指数记法 |
G 或 g | 将浮点数转换为十进制或十进制指数记法 |
n | 返回此次函数调用到目前为止写入的字符数。结果写入参数指向的值中 |
p | 写入实现定义的字符序列,定义一个指针。 |
因此,格式说明符的一般格式为:
%[flags][width][.precision][length]specifier
…
: 其他额外参数,指定要打印的数据。它们按照格式说明符的顺序出现。
fprintf() 返回值
成功时,
fprintf()
函数返回写入的字符数。失败时返回负值。