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

书上说fscanf,fprint比较慢。也不知为什么

fread 和fscanf都是读函数
fwrite和fprintf都是写函数。
原理类似 以fread和fscanf对比举例
fread是不管文件中什么内容,直接读到内存中, 不考虑格式。
而fscanf在读的时候, 第一步要做的 和fread相同,先读取字符到内存中,然后要解析格式字符串,根据格式字符串,去判断读到的字符,和格式字符串是否相符,如果相符,再转换成对应的变量类型,存到参数指针中。
比如分析格式字符串为%d,那么就要判断读到的字符是不是0~9之间的,是的话 再读下一个,直到读到不是0~9之间的字符。 最后 再把读到的字符,转为整型。
由于有这些判断,转换,所以效率自然低。
至于文件打开的方式是文本或者二进制, 和使用哪个函数没太多关系
一般fscanf用于文本,而fread用于二进制。 但并非绝对,二进制也可以用fscanf,而文本也一样可以用fread的。来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
相似回答