我正在尝试编写一个c ++代码,它会在中间添加一些不会覆盖的文本。我已经尝试了所有可能的标签组合,但它们都没有工作。谁能给我一个有效的例子呢? 例如 :- 如果输入是: -
您好!
嘿,你呢?
有人在家吗?
然后输出应该是: -
您好!
嘿,你在吗 ?
你在哪里?
有人在家吗?
你在哪里插入文本。我正在使用c ++文件处理。
答案 0 :(得分:0)
我认为文件很像数组,因为你不能轻易插入。例如,如果要实现向量或arraylist并且想要在中间插入值,则必须在此之后删除所有值。要插入中间我认为你需要移动所有内容。我可能会首先将所有内容读入内存或使用临时文件。
答案 1 :(得分:0)
这不是C ++的限制,而是底层文件系统的限制(在大多数现代文件系统上) 文件是一个连续字节的块,你不能在中间附加。
您有两种选择:
将文件读入内存
操作内存中的文件
覆盖旧文件。
打开文件进行阅读,并打开临时文件进行书写 从输入文件复制到输出文件,直到到达要添加文本的点为止 写下修改并完成复制 用tempfile替换文件。