为什么我不能在C编程中将char写入二进制文件?

时间:2018-06-05 22:12:34

标签: c binary char binaryfiles

int main(){

    FILE *fptr=fopen("clients.dat","wb");
    char a='c';
    //int b=5;
    fwrite(&a,sizeof(char),1,fptr);
}

为什么我运行这个程序“clients.dat”不是二进制文件。但是如果我注释char并取消注释int那么clients.dat文件是二进制文件。它在结构中是相同的。如果struct里面只有char,那么它不会创建二进制文件,但如果有char和其他数据类型,那么它就会创建二进制文件。

有人能写出这个的原因吗?

1 个答案:

答案 0 :(得分:1)

您正在写入以模式" wb", which will overwrite the existing contents of the file 打开的现有文件。因此,您的单个字符'c'会写入文件的开头,无论以前是什么,它现在都是您文件中的唯一内容。

至于为什么它不再被视为二进制,因为'c'是一个可打印的字符。