首页 > Linux操作系统 > Linux操作系统 > 文本文件与二进制文件的区别
从上面可以看出文本文件基本上是定长编码的,基于字符嘛,每个字符在具体编码中是固定的,ASCII码是8个比特的编码,UNICODE一般占16个比特。
而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。
C的文本读写和二进制读写
应该说C的文本读写与二进制的读写是一个编程层次上的问题,与具体的操作系统有关,所以”用文本方式读写的文件一定是文本文件,用二进制读写的文件一定是二进制文件"这类观点是错误的.下面的讲述非明确指出操作系统类型,都暗指windows.
C的文本方读写与二进制读写的差别仅仅体现在回车换行符的处理上.
文本方式写时,每遇到一个''\n''(0AH换行符),它将其换成''\r
\n''(0D0AH,回车换行),然后再写入文件;当文本读取时,它每遇到一个''\r\n''将其反变化为''\n'',然后送到读缓冲区.
二进制读写时,其不存在任何转换,直接将写缓冲区中数据写入文件.
对于内容为
“Ab123\r\n" (41 62 31 32 33 0D 0A)的文件,
pf1 = fopen("f:\\1.txt","r");或者pf1
= fopen("f:\\1.txt","rb");
for(int i=0;i <6;i++){
fread(&a[i],1,1,pf1);
printf("%0X ",a[i]);
}
fclose(pf1);//关闭文件
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25897606/viewspace-704170/ ,如需转载,请注明出处,否则将追究法律责任。