嗨,我想打开一个二进制文件进行读取和写入(不截断,不追加)。我使用模式"r+b"。我没有收到编译错误,但是当阅读我写的内容时,我得到垃圾值。任何想法。
但是如果我打开文件进行写入(模式为"wb")..写入..关闭它,然后打开文件进行读取(模式为"rb")并从中读取,然后它工作正常。
当您以读/写模式(如"r+"、"w+")打开文件时,您需要确保文件指针指向有效位置。 fseek() 是你的朋友。
此外,作为一种很好的做法,请记住始终检查函数的返回值。在这种情况下,也许你的fread()失败了,而你没有注意到它。
使用缓冲 I/O 时,您需要在读回已写入的内容之前进行刷新,以确保没有写入的数据仍然位于本地缓冲区中。