- ベストアンサー
ファイル読み込みで一部分書き換えについて
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です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
fstream fs("test.txt",ios::in | ios::out); fs << "BJD"; fs.close(); 文字数が変動しないなら、こんな感じの処理で書き換えることができます。 そうでない場合は、1行ずつ読み込んで書き換えたい行だけに操作を加えるといった処理をしなければならないと思います。
その他の回答 (1)
- maslkjh
- ベストアンサー率45% (10/22)
もし行が多くなって行を短くしたいのであれば、 string s1, s2...の部分を配列にして、finとfoutの部分をfor()文でまわしてみてはどうでしょうか?
お礼
解答欄と補足欄間違えました、すみません。
補足
返答遅れました。 そういうやり方ありましたね、、頭にでてきませんでした。 ありがとうございます
お礼
解答欄と補足欄間違えました、すみません。
補足
これは便利ですね、初めて知りました。 ありがとうございます。