Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.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_Fwrite_Fseek - Fatal编程技术网

C++ 重写部分二进制文件

C++ 重写部分二进制文件,c++,file,fwrite,fseek,C++,File,Fwrite,Fseek,我有一个带有头和元信息的图像文件,图像数据存储在头之后,我想重写图像数据,但imagesection周围的其他数据已损坏(头)并且文件被截断 我怎样才能把它做好 代码如下: FILE* f = _tfopen(fileName, _T("wb")); if( f != NULL ) { uint64 headerSize = 8; char arr[2*3*3]; //w=3 h=2 RGB memset(arr,100,2*3*3);

我有一个带有头和元信息的图像文件,图像数据存储在头之后,我想重写图像数据,但imagesection周围的其他数据已损坏(头)并且文件被截断

我怎样才能把它做好

代码如下:

FILE* f = _tfopen(fileName, _T("wb"));
if( f != NULL )
{
        uint64 headerSize = 8;
        char arr[2*3*3]; //w=3 h=2  RGB
        memset(arr,100,2*3*3);
        _fseeki64(f, headerSize, SEEK_SET);
        fwrite(arr,sizeof(char),sizeof(arr),f);
        fclose(f);
}

我认为您需要将文件的打开模式从
“wb”
更改为
“r+b”

发件人:


“w”写入:为输出操作创建一个空文件。如果已存在同名文件,则会丢弃其内容,并将该文件视为新的空文件。

我认为您需要将文件的打开模式从
“wb”
更改为
“r+b”

发件人:


“w”写入:为输出操作创建一个空文件。如果一个文件名相同,它的内容就被丢弃,文件被当作一个新的空文件。< /Cord>/P>为什么这个标记的C++?@我正在使用C++的代码。为什么这个标记的C++?@我在C++中使用这个代码。<代码> W+<代码>在同一个表中,指出它也是错误的选择。(即:该文件仍将被截断)。看起来它应该是
r+b
w+
,在同一个表中也表明它是错误的选择(即:该文件仍将被截断)。看起来它应该是
r+b