C - 十六进制值 0x00 未写入文件
C - hex value 0x00 not being written to file
我正在编写程序,我想将一些十六进制地址写入文件。问题是当我 hexdump -C temp
文件时,我只看到 bc ab
而 \x00
由于某种我不明白的原因没有写入文件。也许它们被识别为 EOF 字符?非常感谢任何帮助。
File *file;
char *buffer, *ptr;
ptr = buffer;
*(ptr++) = '\xbc';
*(ptr++) = '\xab';
*(ptr++) = '\x00'; // problem
*(ptr++) = '\x00';
file = fopen("temp", "w");
if (file == NULL) {
fprintf(stderr, "Opening file failed.\n");
exit(1);
}
fprintf(file, "%s", buffer);
fclose(file);
您试图用 fprintf 的 %s 写入空字符。空字符是字符串终止符。不会这样写的。使用 fwrite 或 fputc。
我正在编写程序,我想将一些十六进制地址写入文件。问题是当我 hexdump -C temp
文件时,我只看到 bc ab
而 \x00
由于某种我不明白的原因没有写入文件。也许它们被识别为 EOF 字符?非常感谢任何帮助。
File *file;
char *buffer, *ptr;
ptr = buffer;
*(ptr++) = '\xbc';
*(ptr++) = '\xab';
*(ptr++) = '\x00'; // problem
*(ptr++) = '\x00';
file = fopen("temp", "w");
if (file == NULL) {
fprintf(stderr, "Opening file failed.\n");
exit(1);
}
fprintf(file, "%s", buffer);
fclose(file);
您试图用 fprintf 的 %s 写入空字符。空字符是字符串终止符。不会这样写的。使用 fwrite 或 fputc。