一、介绍
1、fprintf
原型:
int fprintf(FILE *stream, const char *format, ...);
作用:
用于将格式化的数据写入文件。
描述:
stream
是指向要写入的文件的指针,format
是格式化字符串,后面的参数是要写入的数据。fprintf
函数可以按照指定的格式将数据写入文件。它支持类似于printf
函数的格式化字符串,可以使用占位符来表示不同类型的数据。例如,您可以使用%d
来表示整数,%f
来表示浮点数,%s
来表示字符串等。
2、fwrite
原型:
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
作用:
用于将数据块写入文件。
描述:
ptr
是指向要写入的数据块的指针,size
是每个数据块的大小(以字节为单位),count
是要写入的数据块的数量,stream
是指向要写入的文件的指针。fwrite可以将指定大小和数量的数据块直接写入文件,而无需进行格式化,这在处理二进制数据时非常有用。
二、区别
-
功能不同:
fprintf
用于将格式化的数据写入文件,而fwrite
用于将二进制数据块写入文件。 -
参数不同:
fprintf
的第一个参数是文件指针,后面是格式化字符串和对应的参数;而fwrite
的第一个参数是指向要写入数据的指针,第二个参数是每个数据项的大小,第三个参数是要写入的数据项的数量,最后一个参数是文件指针。 -
数据处理方式不同:
fprintf
会根据格式化字符串将数据转换为字符串并写入文件,适用于文本文件;而fwrite
直接将二进制数据块写入文件,适用于二进制文件。 -
可读性不同:由于
fprintf
写入的是文本数据,所以写入的内容可以被人类读取和理解;而fwrite
写入的是二进制数据,不可读。 -
性能不同:由于
fprintf
需要进行格式化处理,所以相对于fwrite
来说,性能较低。