c语言 ,fread,fwrite和fscanf,fprint不知格式化方式和二进制方式的区别

书上说fscanf,fprint比较慢。也不知为什么... 书上说fscanf,fprint比较慢。也不知为什么 展开
 我来答
风若远去何人留
2017-02-26 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
fread 和fscanf都是读函数
fwrite和fprintf都是写函数。
原理类似 以fread和fscanf对比举例
fread是不管文件中什么内容,直接读到内存中, 不考虑格式。
而fscanf在读的时候, 第一步要做的 和fread相同,先读取字符到内存中,然后要解析格式字符串,根据格式字符串,去判断读到的字符,和格式字符串是否相符,如果相符,再转换成对应的变量类型,存到参数指针中。
比如分析格式字符串为%d,那么就要判断读到的字符是不是0~9之间的,是的话 再读下一个,直到读到不是0~9之间的字符。 最后 再把读到的字符,转为整型。
由于有这些判断,转换,所以效率自然低。
至于文件打开的方式是文本或者二进制, 和使用哪个函数没太多关系
一般fscanf用于文本,而fread用于二进制。 但并非绝对,二进制也可以用fscanf,而文本也一样可以用fread的。
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式