首页 > 解决方案 > 如何在 fstream 中转到文件的开头?

问题描述

我正在练习文件处理。我制作了一个文本文件并在其中写入了一些字符,现在我希望光标转到文件的开头并使用 seekp 将一个字符放在那里。

这是代码

fstream ofile;

char ch = 'g';

ofile.open("test.txt", ios::out | ios::app);

ofile.seekp(0, ios::beg);
ofile.put(ch);

ofile.close();

预期结果: 它在文件开头写入 g。

实际结果: 它在末尾附加 g。

我尝试删除 ios::app 标记,但 ios::out 在写入任何内容之前单独截断文件。

标签: c++file-handling

解决方案


请参阅: http ://en.cppreference.com/w/cpp/io/basic_fstream/open

std::ios::app seek to the end of stream before each write


推荐阅读