C++ 重写部分二进制文件
我有一个带有头和元信息的图像文件,图像数据存储在头之后,我想重写图像数据,但imagesection周围的其他数据已损坏(头)并且文件被截断 我怎样才能把它做好 代码如下: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);
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
。