fread里的buf是存储读到的数据么?为什么fread的返回值与strlen(buf)不相等?

如题

fread是读的二进制数据,包括0的;strlen是判断的以0结束的字符串长度,遇到0就打住了。
所以,操作二进制数据的时候,不能用strlen追问

也就是说,fread里的buf存储的是读到文件的二进制版本,fread返回值就是读取字符数(但不是二进制的个数),strlen测到的是buf里0之前的个数。对不?

追答

fread返回的是读到的字符个数(包括0),fread结束标志是传入的buf填满或者文件结束。
strlen统计的是非0字符的个数,以0作为结束标志。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-15
buf的长度是由自己指定的
strlen的长度是从开始到'\0'结尾的字符串的长度,看你读取的数据是什么
相似回答