用C++覆盖CSV文件中的一行

Overwriting a line in CSV file with C++

本文关键字:一行 C++ 覆盖 CSV 文件      更新时间:2023-10-16

我正在用c++编写一个工资单程序,需要能够读取文件中的行,进行计算,然后覆盖文件中读取的行。有没有一种功能/方法可以简单地覆盖特定的行,插入新行,添加到现有文件的末尾?

在文本文件中没有"插入"或"删除"文本的C++功能。唯一的方法是读入现有的文本,然后写出修改后的文本。

如果新文本与旧文本位于同一空间中,您所需要做的就是覆盖现有文本——当然,您可以在.CSV文件中的逗号之前/之后添加额外的空格,而不会使其成为"字段"的一部分。但是,如果新数据更长,它肯定不会"覆盖到位"。

通过使用ios_base::ate修饰符,添加到末尾相对容易。但插入中间仍然需要阅读,直到你找到相关的地方,然后,如果新的文本更长,你必须阅读下面的所有行,然后才能写出新的一行。