恐らくファイル全体を書き直す必要があります。ここではあなたがそれを行うことができる方法である:
#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