文本文件与二进制文件
文本文件与二进制文件:文本文件(只有行结构的字符编码文件(ANSI、Unicode,UTF-8),没有别的控制字符);二进制文件(有特定的存储格式以及别的控制符,如图片,声音,word文档,exe可执行程序等等)。
先创建一个u.txt文本文件:并存入以下内容
计算一下字节大小:汉字,换行符占2个字节,其余占一个字节,应该为21个字节
发现同样的数据:
以ANSI方式存储的占21个字节。
以utf-8存储的占24个字节 。因为在utf-8中汉字占3个字节
以Unicode存储的占38字节。
为了更好的理解文本文件和二进制文件,我们先做个小实验。
文本文件:
//将1234字符串写入到s.txt中
FILE* fp = fopen("s.txt","w");
fprintf(fp, "%s", "1234");
fclose(fp);
然后去查看文件大小,发现为4个字节。然后将文件拖入WinHex软件中:
发现是以ASCII码存储在文件中。
二进制文件:
//将整数1234以二进制存储到t.dat文件中
int x = 1234;
FILE* fp = fopen("t.dat", "wb");
fwrite(&x, sizeof(x), 1, fp);
fclose(fp);
发现t.dat的文件大小也为4个字节。然后将文件拖入WinHex软件中:
以小端机形式存储,1234的16进制为04D2。