prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 12.37

我想以一次一个字节的方式在文件和内存之间读写数字,而不是像fprintffscanf那样作为格式化字符。我该怎么做?


那样以格式化字符的方式。你想要做的事情通常被称为“二进制” I/O。首先,确保你调用fopen时使用了"b"修饰符(例如, "rb"、“wb” 等;参见问题 12.38)。然后,使用&sizeof运算符来处理你要传输的字节序列。通常,你希望使用fread`fwrite`函数;参见问题 2.11 中的示例。

请注意,fread`fwrite`并不一定意味着二进制 I/O。如果你以二进制模式打开文件,你可以对其使用任何 I/O 调用(例如参见问题 12.42 中的示例);如果你以文本模式打开文件,你也可以使用fread`fwrite`如果它们方便的话。

最后,请注意二进制数据文件不是非常可移植;参见问题 20.5

另请参见问题 12.40


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管