二进制模式:将内存中的数据(01序列)直接传送到文件中,没有任何转换。如:char ch = 0x7d; fwrite(&ch, sizeof(char), 1, pfile);直接把0x7d这个01序列存储到文件中。
文本模式:将内存中的数据(01序列),通过文本格式控制,转化成可理解的字面意义,将转化后的字面意义输入到文件中,从字面意义到文件又进行一次转化,将字面意义转化成01序列存储起来。如:char ch = 0x7d; fprintf(fp, “%d”, ch);这个过程就是0x7d -->123-->0x31 0x32 0x37的二进制序列存储到二进制文件中,再用vim之类的文本编辑器打开文件时就可以看到123这个字面意义。
实验代码:
#include<stdio.h> int main(int argc, char *argv[])
{ FILE *pfile = NULL; FILE *pfile2 = NULL; char *file_name = "myfile.bin";char *file_name2 = "myfile.txt";char ch = 0x7d; pfile = fopen(file_name, "wb"); pfile2 = fopen(file_name2, "w");size_t wcount = fwrite(&ch, sizeof(char), 1, pfile);fprintf(pfile2, "%d", ch);return 0;
}
注意事项:
使用fopen打开文件后可以一直往里面追加,不用重新打开,当完全写入完毕时,fclose要关闭,否则会出现莫名的错误。