为什么这段代码不能按预期工作?
#include <cstdio>
int main()
{
char mona[] =
"\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\x00\x01\x90"
"\x00\x00\x02\x5d\x01\x03\x00\x00\x00\x26\xef\xb3\x78\x00\x00\x00\x45\x74\x45\x58"
// <snip>
"\x00\x49\x45\x4e\x44\xae\x42\x60\x82";
FILE *fp = fopen("mona.png","wb");
fputs(mona,fp);
fclose(fp);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
ken*_*ytm 13
fputs应该写一个以null结尾的字符串.一旦'\0'检测到它就会停止.您应该使用fwrite写二进制数据.
fwrite(mona, 1, sizeof(mona), fp);
Run Code Online (Sandbox Code Playgroud)