2
В файле test.txt у меня есть одно слово «aa». Я хочу заменить его на «aa1». Однако нижеприведенная программа не изменяет файл. Что не так?fstream для чтения и записи
#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;
}
Thanx. Замена ios_base :: app с помощью ios_base :: out решила проблему. Он работает как с seekp(), так и с seekg() – cpp
@GrzegorzWilanowski В этом ограниченном примере он скорее всего работает только с 'seekg()', потому что указатель put все равно сидит в 0, и обновление указателя get не изменит этого ... Попробуйте сделать то же самое, где строка, которую вы пишете, не находится в смещении 0 (или сразу после того, что вы написали последним) ... – twalberg