【发布时间】:2012-01-09 14:45:02
【问题描述】:
我尝试从一个 PNG 文件中读取数据,并希望将此数据写入新文件并保存。 我做这样的事情:
FILE *fp = fopen("C:\\dev\\1.png", "rb");
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
rewind(fp);
char *buffer = (char*)malloc(sizeof(char)*size);
size_t result = fread(buffer, 1, size, fp);
FILE *tmpf = fopen("C:\\dev\\1_1.png", "wb");
fputs(buffer, tmpf);
fflush(tmpf);
fclose(tmpf);
我有问题,第二个文件只有它的内容,只有:‰PNG SUB
在调试的时候,我查了一下,long size = 652521,size_t 结果得到了相同的大小... 不明白,为什么我不能将所有数据写入第二个文件...
【问题讨论】:
-
sizeof(char) * size将始终等于size -
nah...我找到了解决方案,我应该使用:fwrite(buffer, 1, result, tmpf);
-
fread()等文件操作是否成功? -
是的,他们做到了!我已成功找到解决方案(往上看)
标签: c++ file binary filestream