1

假设我有一个文本文件

ID       Name         A1      B1       C1     D1
1234567  Bob Persie   12.1    33.0     44.0   55.0
7654321  Tom Hard     12.2    13.0     31.0   3.0

我需要附加单词:与单词交谈:汤姆,所以它看起来像这样

ID       Name         A1      B1       C1     D1
1234567  Bob Persie   12.1    33.0     44.0   55.0
7654321  Tomtalking Hard     12.2    13.0     31.0   3.0

我知道我需要使用 readt.seekp 函数将指针设置到单词中字母“m”之后的位置:Tom。

我无法确定字母“m”的位置。

readt.seekp(位置, ios::beg);

4

2 回答 2

2

你必须重写整个文件,你不能像从文本编辑器那样插入一些文本,你只能覆盖现有的内容并附加到文件的末尾。

一种可能的解决方案可能是逐行读取,按摩,逐行写入临时文件,最后将临时文件重命名为原始文件名。

对于按摩,请更换绳子。所以:

source = open(sourcename, read-only)
(temp, tempname) = tempfile(write-only)

for each line in source:
    line.replace("Tom", "Tomtalking")
    temp.write(line)

close(temp)
close(source)
rename(tempname, sourcename)
于 2013-01-16T09:38:28.247 回答
1

逐行读取整个文件 - 例如,进入字符串向量,执行您需要的附加并覆盖文件。这是一种比 seekp 更常见、更简单的方法。

于 2013-01-16T09:39:27.100 回答