如何不覆盖,而是把内容放在文件的中间
How to NOT OVERWRITE but put content in the middle of a file?
我试图写一个c++代码,将把一些额外的文本在中间不覆盖。我已经尝试了所有可能的标签组合,但没有一个是工作的。谁能给我举个例子?
例如:-如果输入是:-
你好!
嘿,你在吗?
有人在家吗?
那么输出应该是:-
你好!
嘿,你在吗?你在哪里?
有人在家吗?
Where are you文本插入到中间。我使用c++文件处理
我认为文件的工作方式很像数组,因为你不能简单地插入。例如,如果你正在实现一个向量或数组列表,并想在中间插入一个值,你必须在那之后清空所有的值。要插入到中间,我想你需要移动下面所有的内容。我可能会先将所有内容读入内存或使用临时文件。
这不是c++的限制,而是底层文件系统(在大多数现代文件系统上)的限制。
文件是一个连续的字节块,不能在中间添加。
你有两个选择:
-
读取文件到内存
在内存中操作文件
覆盖旧文件 -
打开文件进行读取,打开临时文件进行写入。
从输入文件复制到输出文件,直到您想要添加文本的地方。
写修改并完成副本。
相关文章:
- 如何在标准c ++中流式传输/读取二进制文件的中间部分并写入另一个文件?
- 如何在文本文件中间插入字符
- 无法使用 Openvino 中间表示文件转发() 网络,但可以使用我正在制作 IR 的 ONNX 文件
- 在 txt 文件中搜索中间子字符串未被选中的字符串
- 更改include/对象文件中间程序C
- 将Visual Studio C 构建的中间文件移至另一台计算机
- 致命错误 C1083:无法打开编译器中间文件:"***.pch":没有此类文件或目录
- 如何从头到中间读取文件
- 写入二进制文件的中间;使用tellg()查找长度
- 如何在C++程序的中间写入昂贵的文件I/O
- 如何使项目共享中间文件(.obj)
- 读取中间名为可选文件
- ofstream::write 在写入大型二进制文件时中间失败
- 文件压缩以处理 C++ 中的中间输出
- C++以二进制流的形式读取文件,在中间随机跳过字节
- 覆盖映射文件中间数据的有效方法
- 在文本文件中间附加字符串
- 从文件中间移除内存
- 如何在文件中间(重新)写入字节
- 删除文件中间的字节而不移动末尾