テキストファイル上書き
Posted: 2015年7月26日(日) 10:22
初めて投稿します。普段は Delphi を使っていて、C/C++ の知識が無いとネット上の記事を読むのに不便だと考え、C++ を習い始めた日曜プログラマです。今朝から、相当に初等的な所で躓いています。
数十行のテキストファイルがあります。中に現れる Boy という文字を Girl に置き換えた後、ファイルを上書き保存するというようなことがしたいのですが、出来ません。main() から読んだサブルーチン Shuusei で字句の修正をします。
これが上手く行かず、元のファイルが真っ白(0 byte)に上書きされてしまいます。ofs の出力ファイル名を fName 以外にすれば修正されたファイルがその名で正しく作成されるのですが、fName では駄目です。分らぬながら ios::trunc を附けたり色々試みたものの、今に至って出来ません。どうしたものでしょう。
親切な諸兄のご教示をお待ちします。
数十行のテキストファイルがあります。中に現れる Boy という文字を Girl に置き換えた後、ファイルを上書き保存するというようなことがしたいのですが、出来ません。main() から読んだサブルーチン Shuusei で字句の修正をします。
void shuusei(char *fName)
{
ifstream ifs(fName);
ofstream ofs(fName);
string s;
while(getline(ifs,s))
{
// この部分は、もし Boy があれば s.replace で Girl に置き換える、というコード
ofs << s << endl;
}
return;
}
親切な諸兄のご教示をお待ちします。