【c/c++】fprintf和fwrite使用及作用介绍

一、介绍

1、fprintf

原型:

cpp 复制代码
int fprintf(FILE *stream, const char *format, ...);

作用:

用于将格式化的数据写入文件。

描述:

stream是指向要写入的文件的指针,format是格式化字符串,后面的参数是要写入的数据。fprintf函数可以按照指定的格式将数据写入文件。它支持类似于printf函数的格式化字符串,可以使用占位符来表示不同类型的数据。例如,您可以使用%d来表示整数,%f来表示浮点数,%s来表示字符串等。

2、fwrite

原型:

cpp 复制代码
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);

作用:

用于将数据块写入文件。

描述:

ptr是指向要写入的数据块的指针,size是每个数据块的大小(以字节为单位),count是要写入的数据块的数量,stream是指向要写入的文件的指针。fwrite可以将指定大小和数量的数据块直接写入文件,而无需进行格式化,这在处理二进制数据时非常有用。

二、区别

  1. 功能不同:fprintf用于将格式化的数据写入文件,而fwrite用于将二进制数据块写入文件。

  2. 参数不同:fprintf的第一个参数是文件指针,后面是格式化字符串和对应的参数;而fwrite的第一个参数是指向要写入数据的指针,第二个参数是每个数据项的大小,第三个参数是要写入的数据项的数量,最后一个参数是文件指针。

  3. 数据处理方式不同:fprintf会根据格式化字符串将数据转换为字符串并写入文件,适用于文本文件;而fwrite直接将二进制数据块写入文件,适用于二进制文件。

  4. 可读性不同:由于fprintf写入的是文本数据,所以写入的内容可以被人类读取和理解;而fwrite写入的是二进制数据,不可读。

  5. 性能不同:由于fprintf需要进行格式化处理,所以相对于fwrite来说,性能较低。

相关推荐
菜鸟江多多2 分钟前
【STM32 Rocket-Pi原理图分享】
c语言·stm32·嵌入式硬件·mcu·智能硬件·原理图
良木生香5 分钟前
【C语言进阶】文件操作的相关详解(1):
c语言·数据结构·c++
Larry_Yanan5 分钟前
Qt安卓开发(三)双摄像头内嵌布局
android·开发语言·c++·qt·ui
wjs202410 分钟前
Kotlin 条件控制
开发语言
我命由我1234510 分钟前
Kotlin 开发 - Kotlin Lambda 表达式返回值
android·java·开发语言·java-ee·kotlin·android studio·android-studio
玖釉-15 分钟前
[Vulkan 学习之路] 01 - 迈入高性能图形开发的大门 (Windows 环境搭建)
c++·windows·图形渲染
雨中散步撒哈拉15 分钟前
22、做中学 | 高一下期 | Golang反射
开发语言·golang·状态模式
a努力。19 分钟前
中国电网Java面试被问:Dubbo的服务目录和路由链实现
java·开发语言·jvm·后端·面试·职场和发展·dubbo
itwangyang52028 分钟前
人工智能药物设计和生信常用 R 包一键全自动安装脚本
开发语言·人工智能·r语言
catchadmin29 分钟前
PHP 8.5 升级生存指南:避免凌晨两点回滚的检查清单
开发语言·php