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

标签 c++

<分区>

我有一个包含 itemId、itemName、价格的文本文件

项目信息.txt

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

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

我知道如何逐行读取文件。但我不知道在逐行读取文件并获得我想要的输出后我应该做什么。请指教。谢谢

最佳答案

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

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

#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 示例: 我不能被打扰

关于c++从文本文件中的行编辑特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19374206/

相关文章:

c++ - 根据标准,这些编译器中的哪个有错误?

c++ - 通过显示错误消息 C++ 和 Qt 自定义异常

c++ - 为什么 std::function 在这种情况下不起作用?

c++ - 访问尚未初始化的对象的成员?

c++ - 将 blob 从 mysql 复制到 postgres 进展不顺利(我再也看不到图像了)

c++ - 强制 Visual Studio 链接 lib 文件中的所有符号

c++ - 使用 Boost Logs 在 Windows 控制台中更改日志输出的颜色

c++ - 如何使 g++ -std=c++14 成为默认选项

c++ - C++ second life 库的编译错误

c++ - 索引集(用于在 vector 中有效删除)