我正在做的是在主要开始时使用fstream打开我的文件并在结束时关闭它。在这之间,我正在写“Hello World”,之后阅读我写的内容但结果始终是weired charecters而不是“Hello World”。我确实做了一个角色演员,但没有帮助。我能以任何方式做到这一点吗?
答案 0 :(得分:2)
当您从阅读切换到写作时,您需要设置fseek来电,或者反之亦然。 (当然,您还需要fopen
"r+"
之类的内容,以便允许阅读和写作,但我想您 已经意识到这一点 - 为了在阅读和写作之间切换而寻求的需要是一个鲜为人知的事实。)
正如this page所说,
对于读取和读取的模式 允许写作(或附加) (包含“+”符号的那些), 流应该刷新(fflush)或 重新定位(fseek,fsetpos,倒带) 两者之间的阅读操作 然后是写作操作或 写作操作后跟着 阅读操作。
答案 1 :(得分:1)
如今,由于我使用的是Unix风格的操作系统,我只想使用pipe()
函数。不确定它是否适用于Windows(因为很多不适用于文件上的select()
)。
答案 2 :(得分:1)
确保在阅读之前寻找文件的开头,如下所示:
fileFStream.seekg(0, ios_base::beg);
如果这不起作用,请发布您的代码。