Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 写入文件中的特定位置_C++_File - Fatal编程技术网

C++ 写入文件中的特定位置

C++ 写入文件中的特定位置,c++,file,C++,File,我有 使用设置文件流中的写入位置。使用设置文件流中的写入位置。签出ostream::seekp。写入前将文件指针定位到所需位置。签出ostream::seekp。写入前将文件指针定位到所需位置。您可以使用设置放置指针的位置,并在文件中的特定位置写入,例如 11 111111333111!!!!!!1 11441111 您可以使用设置put指针的位置,并在文件中的特定位置写入,例如 11 111111333111!!!!!!1 11441111 你不能“插入”文件中间的东西

我有


使用
设置文件流中的写入位置。

使用
设置文件流中的写入位置。

签出
ostream::seekp
。写入前将文件指针定位到所需位置。

签出
ostream::seekp
。写入前将文件指针定位到所需位置。

您可以使用设置放置指针的位置,并在文件中的特定位置写入,例如

11   111111333111!!!!!!1    11441111
您可以使用设置put指针的位置,并在文件中的特定位置写入,例如

11   111111333111!!!!!!1    11441111

你不能“插入”文件中间的东西——你能做的唯一的地方操作就是写你试图覆盖的相同数量的字节,即在不改变文件长度的情况下编写。如果需要写入不同长度的字符串(如示例中所示),则必须从结束写入操作的位置重写整个文件(将原始文件存储在缓冲区中并重写)。

您不能“插入”文件中间的东西——你可以做的唯一的地方操作是写你试图覆盖的完全相同数量的字节,即在不改变文件长度的情况下编写。如果需要写入不同长度的字符串(如示例中所示),则必须从结束写入操作的位置重写整个文件(将原始文件存储在缓冲区中并重写)。

最好的方法是在进行所需更改后将整个文件重写为另一个文件

 output.seekp(10);
 output.put('!');

在删除文件之前复制流。这可以帮助您保留文件名。

最好的方法是在进行必要的更改后将整个文件重写为另一个文件

 output.seekp(10);
 output.put('!');

在删除文件之前复制流。这可以帮助您保留文件名。

我尝试了这个方法,但在第二次迭代中使用它后,我得到了错误的字符。我尝试了这个方法,但在第二次迭代中使用它后,我得到了错误的字符。