電子書籍の厳選無料作品が豊富!

C++でテキストファイルから先頭の一部分を読み込んで
その一部分だけ更新するプログラムを作りたいんですけど
どうすればよろしいでしょうか?

テキストファイルの中身例(test.txt)
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA

これを読み込んで

↓↓↓↓↓↓↓↓

たとえば先頭の三文字だけ変えたいとか(test.txt)
BJDAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA

これくらいの行数でしたら

string s1,s2,s3;

fin.open("test.txt");
fin>>s1;
fin>>s2;
fin>>s3;
fin.close();

fout.open("test.txt");
fout<<s1<<"\n";
fout<<s2<<"\n";
fout<<s3<<"\n";
fout.close();
でもなんとかなりそうですけどもっと大量になったときにあまりに
行が長くなりそうなんで他の方法は何かないでしょうか?
ちなみに関係あるか分かりませんがコンパイラはVisualC++2005です。

A 回答 (2件)

fstream fs("test.txt",ios::in | ios::out);


fs << "BJD";
fs.close();

文字数が変動しないなら、こんな感じの処理で書き換えることができます。
そうでない場合は、1行ずつ読み込んで書き換えたい行だけに操作を加えるといった処理をしなければならないと思います。

この回答への補足

これは便利ですね、初めて知りました。
ありがとうございます。

補足日時:2007/03/14 12:13
    • good
    • 0
この回答へのお礼

解答欄と補足欄間違えました、すみません。

お礼日時:2007/03/14 12:14

もし行が多くなって行を短くしたいのであれば、


string s1, s2...の部分を配列にして、finとfoutの部分をfor()文でまわしてみてはどうでしょうか?

この回答への補足

返答遅れました。
そういうやり方ありましたね、、頭にでてきませんでした。
ありがとうございます

補足日時:2007/03/14 12:12
    • good
    • 0
この回答へのお礼

解答欄と補足欄間違えました、すみません。

お礼日時:2007/03/14 12:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!