c++ - 在文件开头添加数据

标签 c++ c

<分区>

Possible Duplicate:
Delete a Line from a file in C Language
In C++, what is the proper way to insert a line at the beginning of a text file?

如何使用c/c++编程在文件开头添加数据? 我试过以下代码:

fstream file;  

stmt.open(L"d:\\xyz.txt",ios::in|ios::out|ios::app);

但这是附加在文件末尾。

最佳答案

你不能那样做。

只有标准的 C 或 C++,如果你想以原子方式进行,你必须将所有内容写入一个新文件(即新数据加上旧文件),然后将文件移过去。如果你想冒险,你可以读取一个数据 block ,并在开头写入新内容并将数据逐 block 向上移动(但如果有什么东西打断你,你已经破坏了文件)。

如果您有权访问内存映射,您可以尝试不同的方法:对整个文件进行内存映射,memmove 它所需的偏移量,memcpy 新的数据进入初始段。

关于c++ - 在文件开头添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9076049/

相关文章:

c++ - 将变量转换为常量

c++ - 从头文件调用函数

c++ - 从未被着色器处理的位置照亮图元

c++ - #ifdef 和#endif 中无法访问的代码是否在编译/链接期间被删除?

c - 使用移位和或操作进行缓冲操作

c++ - 使用 QDataStream 序列化自定义类导致 C2679 错误

javascript - 如何将 C++ 与 Javascript 结合起来

c - 错误 : request for member 'data' in something not a structure or union|

c - 如何将 X 和 Y 屏幕坐标转换为 -1.0, 1.0 float? (在C中)

C 去除字符串中的特殊字符