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

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

在windows平台下:

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

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

在Linux平台下:

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


具体看下面代码:

    

#define _CRT_SECURE_NO_WARNINGS
#include 
#include 

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");
}
测试结果: 
  

从结果可以分析得出:

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

      二进制文件没有变化.


你可能感兴趣的:(C学习)