fprintf() 原型
int fprintf(FILE* stream, const char* format, ...);
fprintf()
函数将 format 指向的字符串写入 stream 指向的流。字符串 format 可能包含以 % 开头的格式说明符,这些说明符将被传递给 fprintf()
函数的变量的值替换。
它定义在 <cstdio> 头文件中。
fprintf() 参数
- stream:指向输出文件流的指针,内容将写入该流。
- format:指向以 null 结尾的字符串的指针,该字符串将被写入文件流。它由字符和以 % 开头的可选格式说明符组成。
格式说明符将被格式字符串后面的相应变量的值替换。
格式说明符包含以下部分
- 前导 % 符号
- 标志:可选的一个或多个标志,用于修改转换行为。
- -:在字段内左对齐结果。默认情况下是右对齐。
- +:结果的符号将附加在值的前面,即使是正数结果。
- 空格:如果没有符号,则在结果前面附加一个空格。
- #:执行转换的替代形式。
- 0:用于整数和浮点数。用前导零填充数字而不是空格。
- 宽度:一个可选的 * 或整数值,用于指定最小字段宽度。
- 精度:一个可选字段,由 . 后跟 * 或整数或为空组成,用于指定精度。
- 长度:一个可选长度修饰符,用于指定参数的大小。
- 说明符:一个转换格式说明符。可用的格式说明符如下
格式说明符 描述 % 打印 % 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()
函数返回写入的字符数。失败时返回负值。
示例:fprintf() 函数如何工作
#include <cstdio>
int main()
{
FILE *fp;
fp = fopen("example.txt","w");
char lang[5][20] = {"C","C++","Java","Python","PHP"};
fprintf(fp,"Top 5 programming language\n");
for (int i=0; i<5; i++)
fprintf(fp, "%d. %s\n", i+1, lang[i]);
fclose(fp);
return 0;
}
运行程序后,将创建一个名为 "example.txt" 的文件(如果该文件尚不存在),其中包含以下字符串
Top 5 programming language 1. C 2. C++ 3. Java 4. Python 5. PHP
另请阅读