fread会忽略ascii文本吗?

时间:2014-10-23 02:11:52

标签: c binary fread

我一直在搜索,但我找不到答案...... C中的fread()是否忽略文件中的ascii文本? 例如,如果我得到这样的文件:

this is ascii
16
words
words
and then binary
1E 04 1A 00 07 FF

所以,无论如何,我只得到文件末尾的二进制文件并跳过ascii代码?或者恐惧只是忽略它? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果你问fread()是否自动跳过信息,请不要。 fread()函数将从当前文件位置读取您告诉它的字节数。它将跳过ASCII或文本或任何其他类型的信息。

如果您只是获取二进制内容,那么当您尝试阅读文件位置时,该位置指向的位置。

如果您只是想要来阅读"二进制文件" (引用,因为,即使它的十六进制数字,仍然 ASCII)最后的东西,你将不得不以某种方式检测它并自己跳过它,直到你达到这一点

例如,如果文件中的偏移量为42,则可以使用fseek转到该点。如果它始终在第六行,您可以读取字符,直到到达第五行。

您选择的方法取决于数据布局, 可以检测二进制信息的开头。