Боюсь, что вам, вероятно, придется переписать весь файл. Вот как можно это сделать:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
string strReplace = "HELLO";
string strNew = "GOODBYE";
ifstream filein("filein.txt"); //File to read from
ofstream fileout("fileout.txt"); //Temporary file
if(!filein || !fileout)
{
cout << "Error opening files!" << endl;
return 1;
}
string strTemp;
//bool found = false;
while(filein >> strTemp)
{
if(strTemp == strReplace){
strTemp = strNew;
//found = true;
}
strTemp += "\n";
fileout << strTemp;
//if(found) break;
}
return 0;
}
ввода-файла:
ONE
TWO
THREE
HELLO
SEVEN
выходного файла:
ONE
TWO
THREE
GOODBYE
SEVEN
Просто раскомментируйте строки комментариев, если вы только хотите, чтобы заменить первый случай. Кроме того, я забыл, в конце добавить код, который удалит filein.txt и переименует fileout.txt в filein.txt.
См., Если это поможет: http://stackoverflow.com/questions/4499095/replace-line-in-a-file-c – Pramod
Это домашнее задание? Если это так, пометьте его, иначе я бы предложил язык сценариев, например perl или python, или просто используя 'sed'. –
Нет, нет для домашней работы, для некоторых работ ... – Warkanlock