为什么我不能通过 fwrite 将“\0”写入文件
Why I cannot write "\0" to a file by fwrite
正在学习如何在C中使用stdlib.h的头文件,最近尝试用fwrite向文件写入"\0",但是不行。谁能告诉我为什么?谢谢
FILE *fp;
fp= fopen("abc.txt","w+");
fwrite("[=10=]", 2, 1, fp);
txt文件只有两个空格:
但对于其他字符串,它有效。
FILE *fp;
fp= fopen("abc.txt","w+");
fwrite("ab", 2, 1, fp);
我看到你在使用记事本。这要怪记事本。
因为当你在记事本中打开一个文件时,它无法识别的所有字符都会自动替换为' '
(space,ASCII 0x20)。你应该使用十六进制编辑器来查看它,你会得到正确的结果。
如果您想要文字反斜杠和零,请转义反斜杠:
fwrite("\0", 2, 1, fp);
^^
正在学习如何在C中使用stdlib.h的头文件,最近尝试用fwrite向文件写入"\0",但是不行。谁能告诉我为什么?谢谢
FILE *fp;
fp= fopen("abc.txt","w+");
fwrite("[=10=]", 2, 1, fp);
txt文件只有两个空格:
但对于其他字符串,它有效。
FILE *fp;
fp= fopen("abc.txt","w+");
fwrite("ab", 2, 1, fp);
我看到你在使用记事本。这要怪记事本。
因为当你在记事本中打开一个文件时,它无法识别的所有字符都会自动替换为' '
(space,ASCII 0x20)。你应该使用十六进制编辑器来查看它,你会得到正确的结果。
如果您想要文字反斜杠和零,请转义反斜杠:
fwrite("\0", 2, 1, fp);
^^