假设我有一个文本文件
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(position,ios :: beg);
答案 0 :(得分: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)
答案 1 :(得分:1)
逐行读取整个文件 - 例如,在字符串向量中,执行您需要的追加并覆盖文件。这是比seekp更常见,更简单的方法。