C语言 有没有一种好的方法可以将二进制数据的文字写入文件?

ymzxtsji  于 2023-11-16  发布在  其他
关注(0)|答案(1)|浏览(143)

我有一个PDF文件的字节,我把它们放在我的C文件。
然后,代码创建一个sample.pdf文件,并使用JavaScript打开它,将这些字节写入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的文件,并将字节写入其中。

yhived7q

yhived7q1#

byte docDat[] = { 0x25, 0x50, ...  };
...
size_t actually_written = fwrite(docDat, 1, sizeof(docDat), fd);

字符串
请参阅https://en.cppreference.com/w/c/io/fwrite
通常使用unsigned char而不是byte。前4个字节拼写为“%PDF”。

相关问题