Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-十六进制值0x00未写入文件_C_Hex_Hexdump - Fatal编程技术网

C-十六进制值0x00未写入文件

C-十六进制值0x00未写入文件,c,hex,hexdump,C,Hex,Hexdump,我正在写一个程序,我想写一些十六进制地址的文件。问题是,当我hextump-C temp文件时,我只看到bc ab,\x00由于某种原因没有写入文件。也许他们被认为是EOF角色?非常感谢您的帮助 File *file; char *buffer, *ptr; ptr = buffer; *(ptr++) = '\xbc'; *(ptr++) = '\xab'; *(ptr++) = '\x00'; // problem *(ptr++) = '\x00'; file = fopen("te

我正在写一个程序,我想写一些十六进制地址的文件。问题是,当我
hextump-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写入空字符。Null字符是字符串终止符。不会那样写的。使用fwrite或fputc。

您试图用fprintf的%s写入空字符。Null字符是字符串终止符。不会那样写的。使用FWORD或FPTC.

使用开放模式<代码>“WB”也考虑使用<代码> fWord<代码>,而不是<代码> fPrPtf<代码>如果您不希望它在第一个<代码> \x00 < /代码>停止,值0(\x00)是一个特殊的值(NULL),它通常用来指示字符串的结尾。@标记<代码> 0x00 < /代码>不是NULL@M.M哦,对不起,空字符或字符串终止符如何?使用开放模式<代码>“WB”< /代码>也考虑使用<代码> fWord<代码>,而不是<代码> fPrPtf<代码>如果您不希望它在第一个代码> \x00 < /代码>停止,则值0(\x00)是一个特殊值(null)通常用于指示字符串的结尾。@Marker
0x00
不可用NULL@M.M对不起,空字符或字符串终止符怎么样?