![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
C++にて"test.txt"内を検索して"No=00000"という行を"No=12345"に書き換えてファイルを上書き、
という処理をするプログラムを作成したいのですが、どのようにファイルへ書き込みをすればよいのか
が分かりません"No=00000"の行を置換するまではできたのですが、置換した文字列で元の文字列を上書きするには
どうすれば良いのでしょうか?
それとも以下のソースでは根本的に考え方が違うのでしょうか?初歩的な質問で恐縮ですが、よろしく
お願い致します。
***************************************
//test.cpp
#include <string>
#include <fstream.h>
void main()
{
fstream fs;
char buf[512];
fs.open("test.txt",ios::in | ios::out);
while(!fs.eof())
{
fs.getline(buf,sizeof(buf));
if(strstr(buf, "No="))
{
std::string aa;
aa=buf;
aa.replace(3,5,"12345");
//ここからの処理が分かりません・・・
}
}
}
**************************
test.txtは以下の通り
Name=test
No=00000←この行だけ書き換えたい。
Address=hoge
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
1.読み込みファイルを開く(test.txt)
2.書き込みファイルを開く(test.tmp)
3.前述
4.ファイルを閉じる
5.読み込みファイルを開く(test.tmp)
6.書き込みファイルを開く(test.txt)
7.読み込み→書き込み
8.ファイルを閉じる
9.test.tmpを削除する
No.1
- 回答日時:
1.一行読む
2a.該当行なら新しい行を書き込む
2b.非該当行ならそのまま書き込む
3.EOFまで(全部読み終わるまで)繰り返す
ではだめですか?
レスありがとうございます。ご教授いただいた方法でも全然問題ないです。
試しに、以下のようにしてみたのですが、ファイルへは何も書き込まれませんでした。何が悪いのでしょうか?
根本的な考え方が違うならば、ご指摘ください。
具体的にコードを示して頂けるとありがたいです。
while(!fs.eof())
{
fs.getline(buf,sizeof(buf));
if(strstr(buf, "No="))
{
fs.write("No=12345",sizeof(buf));
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Java java final 1 2022/06/10 22:49
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
バッチ処理でファイルの中身を...
-
拡張子を元に戻す
-
.txtではなく.logの方が良いの...
-
ファイルの最後に文字列挿入
-
COPYコマンドで結合すると余計...
-
Windowsのバッチファイルを利用...
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
-
テキストデータExcel取込時の文...
-
Text::Xslateのパスについて
-
ExcelVBA テキストファイルUNIC...
-
ファイル内の文字列を検索して...
-
複数のテキストファイルを1つに...
-
テキストファイルのタブをカン...
-
テキストファイルクリア .net2...
-
UWSCでファイルを開く方法
-
バッチにてフォルダ内ファイル...
-
VB2010で動作しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
ファイルの最後に文字列挿入
-
Windowsのバッチファイルを利用...
-
バッチファイル 複数ファイル...
-
renameコマンドについて
-
psqlでエラーログをとりたい
-
テキストファイルで提出とは?
-
forfilesで検索したファイルを...
-
VBAでエクセルをtxtに変換する...
-
テキスト(txt)→ワード(docx)へ...
-
UWSCでテキストファイルを開い...
-
バッチファイルで文字列削除に...
-
wikiでローカルファイルのリン...
-
ExcelVBA テキストファイルUNIC...
-
コマンドプロンプトで指定した...
おすすめ情報