c ++从文本文件中的行编辑特定单词

时间:2013-10-15 05:58:36

标签: c++

我的文本文件包含itemId,itemName,price

itemInfo.txt

1,samsung galaxy 4,1000
2,levis pants,100
3,jacket,100

我想要做的是如果用户想要将夹克的价格从100改为50,程序将检测夹克的ID(在这种情况下是第3行)并更改夹克的价格。或者如果用户想要将'levis pants'更改为'tshirt',它将检测id(在本例中为第2行)并更改其名称。

我知道如何逐行读取文件。但我不知道在逐行读取文件后我应该怎么做,并实现我想要的输出。请指教。感谢

1 个答案:

答案 0 :(得分:1)

所以有两种方法可以做到这一点:

  1. 使用新值写入当前文件,这意味着读取所有数据,然后以相同格式写回,这是最简单的方法,只需使用ofstream来写出相同的数据
  2. 在ofstream库中使用流指针,检查this资源(提示:seekp,tellp和write),这将“移动”到文件中的某个点,然后直接从该点写出,这是一种更复杂但更有效的方法。
  3. #1的例子:

    int rowCount = 0;
    // read in file here and count the number of rows in the text file.
    
    ofstream output;
    output.open("itemInfo.txt", ofstream::out);
    
    for (int i = 0; i < rowCount; i++) // 
        output << itemId[i] << "," << itemName[i] << "," << price[i] << endl;
    

    #2的例子:     我不能打扰