提问人:vijay shankar 提问时间:11/13/2023 最后编辑:mkrieger1vijay shankar 更新时间:11/13/2023 访问量:76
有没有一种好方法可以将二进制数据的文字写入文件?
Is there a good way of writing a literal of binary data to write into a file?
问:
我有一个 PDF 文件的字节,我把它们放在我的 C 文件中。
然后,代码创建一个 sample.pdf 文件,并使用 wb 打开它,以将这些字节写入 sample.pdf 文件。
它创建文件,但打开时显示文件已损坏数据。
下面我附上了我的整个源代码:
#include <stdio.h>
int main(){
char docDat[] = "0x25,0x50,0x44,0x46,0x2D,0x31,0x2E,0x36,0x0A,0x25,0xC3,0xA4,0xC3,0xBC,0xC3,0xB6,0xC3,0x9F,0x0A,0x32,0x20,0x30,0x20,0x6F,0x62,0x6A,0x0A,0x3C,0x3C,0x2F,0x4C,0x65,0x6E,0x67,0x74,0x68,0x20,0x33,0x20,0x30,0x20,0x52,0x2F,0x46,0x69,0x6C,0x74,0x65,0x72,0x2F,0x46,0x6C,0x61,0x74,0x65,0x44,0x65 ..... Bytes of pdf";
FILE *fp;
fp = fopen("sample.pdf", "wb");
fprintf(fp, docDat);
fclose(fp);
return 0;
}
我希望当程序执行时,它会创建一个名为 sample.pdf 的文件并将字节写入其中。
答:
1赞
Joop Eggen
11/13/2023
#1
byte docDat[] = { 0x25, 0x50, ... };
...
size_t actually_written = fwrite(docDat, 1, sizeof(docDat), fd);
查看 https://en.cppreference.com/w/c/io/fwrite
而不是经常使用。前 4 个字节拼写为“%PDF”。byte
unsigned char
评论