特定の行C ++タブ区切りを検索します
-
12-12-2019 - |
質問
アカウント番号タイプ量
15チェック52.42
23節約51.51
11 12.21
マイタブデリストファイル
口座番号で行を検索できるようにしたいと思います。私が23歳にすると、その特定の行を取得したいのです。どのようにIDはそれをしますか?
もまた、特定の値を変更したい場合は、アカウント23で51.51を変更したい場合は、その値を取得して新しい値に置き換えますか?
これまでのところ行で行で読んでいるim
文字列行。 ifStreamが( "account.txt");
.if (is.is_open()) { while (std::getline(is, line)) // read one line at a time { string value; string parseline; std::istringstream iss(line); getline(line, parseline); cout << parseline << endl; // do something with the value while (iss >> value) // read one value at at time from the line { //cout << line << " "; // do something with the value } } is.close(); } else cout << "File cant be opened" << endl; return 0;
解決
各行が可変長であることは、最初にファイル全体を解析せずに特定の行にインデックスを付ける方法はありません。
しかし、私はあなたのプログラムがランダムな行と列を操作したいと思うでしょう。だから私はファイル全体を解析することから始めました。各行を配列内の独自のデータ構造に置き、次にその行を配列内の索引付けします。
"strtok"を使って入力を行に分割してから、もう一度Strtokを再度strtokしてフィールドに分割できます。
他のヒント
これを行う場合は、最初にファイル全体を解析し、適切なデータ構造(配列やstd :: mapなど)にデータを保存するいくつかの関数を書きます。その後、必要な操作(検索や編集など)のデータ構造を使用します。最後に、変更がある場合はデータ構造をファイルに書き戻すことができます。
所属していません StackOverflow