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