当前位置: 技术问答>linux和unix
关于文本文件和二进制文件的疑惑
来源: 互联网 发布时间:2017-05-03
本文导语: FILE *fp_txt = NULL; FILE *fp_bin = NULL; fp_txt = fopen("a", "w"); fp_bin = fopen("b", "wb"); fputc(12, fp_txt); fputc(12, fp_bin); fclose(fp_txt); fclose(fp_bin); 写了一小段代码试验文本文...
FILE *fp_txt = NULL;
FILE *fp_bin = NULL;
fp_txt = fopen("a", "w");
fp_bin = fopen("b", "wb");
fputc(12, fp_txt);
fputc(12, fp_bin);
fclose(fp_txt);
fclose(fp_bin);
写了一小段代码试验文本文件和二进制文件的区别,结果发现输出的文件是一样的。我觉得输出应该是:
a文件:31 32 分别是1和2的ASCII码
b文件:12 直接输出12的值
结果上面程序输出后的文件内容是一样的,都是12,用UE打开显示0C。说明都是按二进制文件来写的。
搜了下资料,没发现讲的比较好的。
糊涂了,还望各位大侠指点迷津啊!!
FILE *fp_bin = NULL;
fp_txt = fopen("a", "w");
fp_bin = fopen("b", "wb");
fputc(12, fp_txt);
fputc(12, fp_bin);
fclose(fp_txt);
fclose(fp_bin);
写了一小段代码试验文本文件和二进制文件的区别,结果发现输出的文件是一样的。我觉得输出应该是:
a文件:31 32 分别是1和2的ASCII码
b文件:12 直接输出12的值
结果上面程序输出后的文件内容是一样的,都是12,用UE打开显示0C。说明都是按二进制文件来写的。
搜了下资料,没发现讲的比较好的。
糊涂了,还望各位大侠指点迷津啊!!
|
兄弟,谭浩强的书害人不浅。文本文件和2进制文件本质上没啥区别,对于计算机来说都是2进制。所以,你完全可以对一个有'b'参数的文件用fprintf。只不过windows多此一举,在以2进制文件打开的时候'n'就是'n',而在文本文件模式下'n'前面就多加了个'r'
|
fputc(12, fp_txt);
fputc(12, fp_bin);
你写一样的东西,当然就是一样的,和你带不带二进制方式无关。
你要明白带不带二进制只是读写内容的方式,和内容是无关的。
fputc(12, fp_bin);
你写一样的东西,当然就是一样的,和你带不带二进制方式无关。
你要明白带不带二进制只是读写内容的方式,和内容是无关的。
|
两种模式对于rn的处理不一样。