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

时间:2013-07-31 15:57:52

标签: c++ csv file-io

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

1 个答案:

答案 0 :(得分:1)

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

如果新文本与旧文本位于同一空间,则您需要做的就是覆盖现有文本 - 当然,您始终可以在.CSV文件中的逗号之前/之后添加额外的空格,没有它成为“领域”的一部分。但是如果新数据更长,它绝对不会“覆盖到位”。

使用ios_base::ate修饰符可以相对轻松地添加到最后。但是插入中间仍然涉及基本读取,直到找到相关位置,然后,如果新文本更长,则必须先阅读以下所有行,然后才能编写新文本。