二进制文件与文本文件区别
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");
}
从结果可以分析得出:
文本写入时候将10(换行符的ASCII)替换成了13(回车符)和10(换行符);\
二进制文件没有变化.
在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(换行符);\
二进制文件没有变化.
相关文章推荐
- Gradle 修改 Maven 仓库地址
- Fishnet(暴力POJ 1408)
- maven 安装
- android使用微软雅黑字体
- Fishnet(暴力POJ 1408)
- objc_msgSend crash
- 判断当前版本(转载)
- 【剑指offer】七,二进制表示中1的个数
- bzoj1023 [SHOI2008]cactus仙人掌图
- 宏观CMS-->功能体系结构内容管理系统
- 配流02——基于LOGIT的STOCH配流法(改进的dial算法)
- Android(java)学习笔记196:Android中Menu的使用(静态和动态)
- poj3659 Cell Phone Network(最小支配集-树形dp)
- 简单的安卓程序以及各文件作用
- HTTP 请求报文 响应报文
- leetcode 202: Happy Number
- 统计学完全教程1
- Ubuntu 配置 Tomcat
- osal_msg_send 以及OSAL消息发送示例
- iOS基础-高级视图-UITableView--实例:app管理