搜索特定的行c ++选项卡分隔

时间:2012-07-26 18:38:44

标签: c++ search replace tab-delimited

  

AccountNumber类型金额

     

15检查52.42

     节省了51.51

     

11检查12.21

是我的标签文件

我希望能够按帐号搜索行。如果我输入23,我想得到那个特定的行。如何做到这一点?

如果我想更改特定值,比如说帐户23中的金额为51.51,那么

也会更进一步。如何获取该值并将其替换为新值?

到目前为止,我只是逐行阅读

  

字符串行;       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;

2 个答案:

答案 0 :(得分:2)

鉴于每一行都是可变长度,没有首先解析整个文件就无法索引到特定行。

但我怀疑你的程序会想要操纵随机的行和列。所以我首先解析整个文件。将每一行放入数组中自己的数据结构中,然后在数组中索引该行。

您可以使用“strtok”将输入拆分为行,然后再次strtok将每行拆分为字段。

答案 1 :(得分:0)

如果我这样做,我会首先编写一些函数来解析整个文件并将数据存储在适当的数据结构中(例如数组或std :: map)。然后我将使用数据结构进行所需的操作(例如搜索或编辑)。最后,如果有任何修改,我会将数据结构写回文件。