您的位置:首页 > 其它

二进制文件与文本文件区别

2015-08-26 12:25 323 查看
      二进制文件与文本文件区别:

在windows平台下:

文本文件:写入过程中,会将换行符替换为回车符和换行符,而读取过程刚好与写入相反。

二进制文件:读取和写入无差别。

在Linux平台下:

文本文件和二进制文件都无差别。

具体看下面代码:

    #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

void readfile(char *path)
{
FILE *pf = fopen(path, "rb");
char ch;
fread(&ch, 1, 1, pf);
while (!feof(pf))
{
printf("% d", ch);//打印ASCII
fread(&ch, 1, 1, pf);
}
fclose(pf);
}

void main()
{
char buf[5] = { 10, 10, 10, 10, 10 };//每个元素是换行符
FILE *pfa;//代表文本文件
FILE *pfb;//代表二进制文件
char patha[40] = "D:\\a.c";
char pathb[40] = "D:\\b.c";
pfa= fopen(patha, "w");
if (pfa==NULL)
{
printf("文件打开失败");
}
else
{
fwrite(buf, 1, 5, pfa);
fclose(pfa);
}

pfb = fopen(pathb, "wb");
if (pfb == NULL)
{
printf("文件打开失败");
}
else
{
fwrite(buf, 1, 5, pfb);
fclose(pfb);
}

printf("\n");
printf("文本写入读取内容:\n");
readfile(patha);

printf("\n");
printf("文本写入读取内容:\n");
readfile(pathb);

system("pause");
}
</pre><pre name="code" class="plain">
测试结果:

从结果可以分析得出:

     文本写入时候将10(换行符的ASCII)替换成了13(回车符)和10(换行符);\

      二进制文件没有变化.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: