C++ 读写流

C++ 读写流,c++,fstream,C++,Fstream,在test.txt文件中,我有一个单词“aa”。我想用“aa1”来代替它。但是,下面的程序不会更改文件。怎么了 #include <string> #include<iostream> #include<fstream> using namespace std; int main() { fstream iofile("test.txt",ios_base::in|ios_base::app); if (!iofile)

在test.txt文件中,我有一个单词“aa”。我想用“aa1”来代替它。但是,下面的程序不会更改文件。怎么了

#include <string>
#include<iostream>
#include<fstream>
using namespace std;

int main()
{
    fstream iofile("test.txt",ios_base::in|ios_base::app);
    if (!iofile)
            cerr << "Unable to open file!";

    string word;
    iofile >> word;
    word.push_back('1');
    iofile.seekg(0);
    iofile << word;  
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
fstream iofile(“test.txt”,ios_base::in | ios_base::app);
如果(!iofile)
cerr>word;
字。推回('1');
iofile.seekg(0);

iofile您意识到无论您试图在哪里寻找写入,都会导致您附加到文件末尾,对吗?也许您是想指定
ios\u base::out


另外,对于写入,它是
seekp()
而不是
seekg()

Thanx。用ios\u base::替换ios\u base::app解决了这个问题。它同时适用于seekp()和seekg()@GrzegorzWilanowski。在这个有限的示例中,它可能只适用于
seekg()
因为put指针仍然位于0,而更新get指针不会改变这一点……请尝试在您正在写入的字符串不在偏移量0处(或在您上次写入的字符串之后立即执行此操作)。。。