fwrite和fprintf的区别
问题描述
- 精选答案
-
fwrite和fprintf都是C语言中用于文件操作的函数,但有一些区别:
1. 参数类型:fwrite的参数类型是void*,表示要写入的数据的地址;fprintf的参数类型是const char*,表示要写入的格式化字符串。
2. 写入方式:fwrite将二进制数据写入文件,不会进行格式化处理;fprintf将格式化的字符串写入文件,可以指定输出格式。
3. 返回值:fwrite返回写入的元素数量;fprintf返回成功写入的字符数。
4. 写入位置:fwrite写入的位置由文件指针指定,每次写入后文件指针会自动向后移动;fprintf按照文件流的当前位置进行写入,每次写入后文件指针不会移动,下次写入会继续在当前位置写入。
5. 使用场景:fwrite适用于处理二进制文件,如图片、音频等;fprintf适用于处理文本文件,如日志、配置文件等。
总的来说,fwrite适用于处理二进制数据,而fprintf适用于处理文本数据。
- 其他回答
-
fwrite是向流中写入数据,而fprintf是向流中写入格式数据。两者的共同点为向流中写入数据,至于区别可以看看两者的申明:
size_tfwrite(
constvoid*buffer,
size_tsize,
size_tcount,
file*stream
);
intfprintf(
file*stream,
constchar*format[,
argument]...
);
前者fwrite写入流stream中的数据是buffer指定的内容,内容的字节大小分别由size和count两个参数来指定,因此写入流stream中的内容有可能是乱码,但是有效的数据。
后者fprintf写入流stream中的数据则由argument来指定,并且这些argument的内容分别由format指定的格式来显示,因此写入stream的内容通常来说是文本字符流,当然,也允许写入格式乱码。
两者都可以将文本写入流stream中。比如:
fwrite("helloworld!",1,12,fp);
与
fprintf(fp,"%s","helloworld!");
等价。
猜你喜欢内容
-
简单网:构建全网教育数据枢纽,让知识检索化繁为...
简单网:构建全网教育数据枢纽,让知识检索化繁为“简”回答数有0条优质答案参考
-
去三亚有什么好玩的地方
去三亚有什么好玩的地方回答数有1条优质答案参考
-
石狮一日游必去景点推荐
石狮一日游必去景点推荐回答数有1条优质答案参考
-
电气工程师的证书考取条件是什么
电气工程师的证书考取条件是什么回答数有1条优质答案参考
-
房地产估价师的具体报考条件有啥
房地产估价师的具体报考条件有啥回答数有1条优质答案参考
-
房产经纪人的工作内容具体包含什么
房产经纪人的工作内容具体包含什么回答数有1条优质答案参考
-
学习小提琴都有哪些难点
学习小提琴都有哪些难点回答数有1条优质答案参考
-
企业行政管理证书的含金量怎么样
企业行政管理证书的含金量怎么样回答数有1条优质答案参考
-
初学者要怎么入门小提琴
初学者要怎么入门小提琴回答数有1条优质答案参考
-
报考珠宝鉴定师要啥条件
报考珠宝鉴定师要啥条件回答数有1条优质答案参考
















