【发布时间】:2013-01-26 21:51:51
【问题描述】:
我正在尝试从 C 中的文件中读取,并且在我完成读取后想要写入同一个文件。我正在尝试为此使用 fread() 。有谁知道 fread 在遇到“\0”后是否推进指针?我的意思是在我读完之后我需要推进指针还是需要立即开始使用 fwrite 写入文件?
【问题讨论】:
-
如果这是一个文本文件,文件位置是不可预测的。
标签: c file-handling
我正在尝试从 C 中的文件中读取,并且在我完成读取后想要写入同一个文件。我正在尝试为此使用 fread() 。有谁知道 fread 在遇到“\0”后是否推进指针?我的意思是在我读完之后我需要推进指针还是需要立即开始使用 fwrite 写入文件?
【问题讨论】:
标签: c file-handling
fread 将推进文件位置(不是指针),直到它到达EOF。
但是,它不会仅仅因为遇到'\0'而停止阅读。事实上,即使是fgets,也只会在遇到\n时停止阅读。我所知道的没有标准库函数会停止读取'\0' 处的文件。
【讨论】:
是的,它确实会推进指针,除非你遇到 EOF 或遇到错误:
返回值
函数 fread() 和 fwrite() 将流的文件位置指示符提前读取或写入的字节数。他们回来了 读取或写入的对象数。如果发生错误或到达文件结尾,则返回值是一个短对象计数(或 零)。
【讨论】: