C语言fprintf():将数据格式化写入到文件中
fprintf() 是 C语言标准库中的函数,定义在
fprintf() 函数的功能是将格式化的数据写入到指定的文件中,函数原型如下:
int fprintf(FILE *stream,char *format[,argument...]);
参数
1、stream
文件指针,指向存放数据的目标文件。
2、format
由格式说明和普通字符构成。其中,普通字符是原封不动写入到文件中的字符,如逗号、空格、换行符等;格式说明定义 argument 的格式,它以“%”开头,后面跟格式字符,格式字符前面还可以有其他修饰符,表示输出数据的宽度、精度等。
参数 format 的格式如下:
%[flags][width][.precision][length]格式字符
格式说明的个数必须与参数 argument 的个数一致。
1) 格式字符及说明如下表所示。
格式字符
说明
示例
d 或 i
带符号十进制整数
26、 285
o
无符号八进制整数
316、 501
x
无符号十六进制整数
8cf、32b7
X
无符号十六进制整数(以大写形式输出)
8CF、32B7
u
无符号十进制整数
1234、 32727
f
小数形式的单、双精度浮点数
102.6、2987.58
e 或 E
指数形式的单、双精度浮点数
1.026e+2、1.026E+2
g 或 G
以 %f 或 %e 的形式输出浮点数
102.6
c
单个字符
'a'、A
s
字符串
“hello”
p
输出一个指针
0012FF7C
2) flags 控制输出数据的对齐方式,flags 及说明如下表所示。
flags
说明
-
在给定的域宽内靠左端输出
+
强制在正数前输出 + 号,在负数前输出 - 号
#
使用 o、x 或 X 格式时,在数据前面分别增加前导符 0、0x 或 0X 输出
3) width 控制数据输出的宽度,width 及说明如下表所示。
width
说明
m
输出字段的宽度,如果数据的宽度小于 m,则左端补上空格;否则按照实际位数输出
4) precision 表示单精度和双精度浮点数的小数点个数,precision 及说明如下表所示。
precisi on
说明
n
对于浮点数,表示输出 n 位小数;对于字符串,表示输出字符串的个数
5) length 表示整型数据是长整型还是短整型,length 及说明如下表所示。
length
说明
h
用来输出短整型数据(只对 i、d、0、u、x 和 X 有效)
l 或 L
用来输出长整型数据和双精度型数据
3、argument
表示要格式化的数据,分别与格式字符对应。
返回值
如果成功,返回写入文件的字符数;如果出现错误,则返回一个负值。
实例
下面是一个示例代码,展示了如何使用 C语言的 fprintf() 函数:
#include
int main() {
FILE *file;
file = fopen("example.txt", "w"); // 打开文件以写入
if (file == NULL) {
printf("文件打开失败!\n");
return 1;
}
int age = 25;
float salary = 5000.50;
// 将格式化的文本写入文件
fprintf(file, "年龄:%d\n工资:%.2f\n", age, salary);
fclose(file); // 关闭文件
printf("数据写入成功!\n");
return 0;
}
这个程序将打开名为 "example.txt" 的文件,并写入包含年龄和工资的格式化文本。当程序执行成功时,它会创建或覆盖文件,并将文本写入文件中。最终文件中存储的数据为:
年龄:25
工资:5000.50