我有一个带有标题和元信息的图像文件,图像数据存储在标题之后,我想重写图像数据,但是 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"
来自 cplusplus.com :
"w"write:为输出操作创建一个空文件。如果已存在同名文件,则丢弃其内容并将该文件视为新的空文件。
关于c++ - 重写二进制文件的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284906/