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和其他数据类型,那么它就会创建二进制文件。
有人能写出这个的原因吗?
答案 0 :(得分:1)
您正在写入以模式" wb", which will overwrite the existing contents of the file 打开的现有文件。因此,您的单个字符'c'
会写入文件的开头,无论以前是什么,它现在都是您文件中的唯一内容。
至于为什么它不再被视为二进制,因为'c'
是一个可打印的字符。