1

口座番号 タイプ 金額

15 チェック 52.42

23 割引 51.51

11 チェック 12.21

私のタブ区切りファイルです

口座番号で行を検索できるようにしたいです。たとえば、23 を入力すると、その特定の行を取得したいとします。どうすればそれができますか?

また、特定の値を変更したい場合は、アカウント 23 の金額 51.51 とします。その値を取得して新しい値に置き換えるにはどうすればよいですか?

これまでのところ、行ごとに読んでいるだけです

ストリングライン; ifstream is("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;
4

2 に答える 2

2

Given that each line is of variable length there is no way to index to particular row without first parsing the entire file.

But I suspect your program will want to manipulate random rows and columns. So I'd start by parsing out the entire file. Put each row into its own data structure in an array, then index that row in the array.

You can use "strtok" to split the input up into rows, and then strtok again to split each row into fields.

于 2012-07-26T19:16:56.963 に答える
0

これを行う場合、最初に、ファイル全体を解析し、データを適切なデータ構造 (配列や std::map など) に格納するいくつかの関数を記述します。次に、必要な操作 (検索や編集など) にデータ構造を使用します。最後に、変更がある場合は、データ構造をファイルに書き戻します。

于 2012-07-26T19:54:36.137 に答える