二进制模式:将内存中的数据(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要关闭,否则会出现莫名的错误。