为什么我不能通过fwrite将“\ 0”写入文件

时间:2018-01-28 04:58:40

标签: c fwrite

我正在学习如何在C中使用stdlib.h的头文件。最近,我尝试通过fwrite将“\ 0”写入文件,但它不起作用。谁能告诉我为什么?感谢。

FILE *fp;
fp= fopen("abc.txt","w+");
fwrite("\0", 2, 1, fp);

txt文件中只有两个空白:

The result in the file

但是对于其他字符串,它可以工作。

FILE *fp;
fp= fopen("abc.txt","w+");
fwrite("ab", 2, 1, fp);

The result of "ab" in the file

1 个答案:

答案 0 :(得分:1)

我看到你正在使用记事本。责备记事本。

因为当您在记事本中打开文件时,它无法识别的所有字符将自动替换为' '(空格,ASCII 0x20)。您应该使用十六进制编辑器来查看它,并且您将获得正确的结果。

如果你想要一个文字反斜杠和零,请转义反斜杠:

fwrite("\\0", 2, 1, fp);
        ^^