我们都知道,文本文件和二进制文件在计算机上面都是以0,1存储的,那么两者怎么还存在差别呢?我觉得,对于编程人员,文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾。
FILE *fp;
fp=fopen(文件名,使用文件方式);
使用文件方式见下表:
使用文件方式 |
含义 |
"r"(只读) | 为输入打开一个文本文件 |
"w"(只写) | 为输出打开一个文本文件 |
"a"(追加) | 为追加打开一个文本文件 |
"rb"(只读) | 为输入打开一个二进制文件 |
"wb"(只写) | 为输出打开一个二进制文件 |
"ab"(追加) | 为追加打开一个二进制文件 |
"r+"(读写) | 为读/写打开一个文本文件 |
"w+"(读写) | 为读/写创建一个文本文件 |
"a+"(读写) | 为读/写打开一个文本文件 |
"rb+"(读写) | 为读/写打开一个二进制文件 |
"wb+"(读写) | 为读/写创建一个二进制文件 |
"ab+"(读写) | 为读/写打开一个二进制文件 |
fprintf(文件指针,格式字符串,输出列表);
fscanf (文件指针,格式字符串,输入列表);
3怎么判断文件尾?
在 C语言,或更精确地说成 C标准函式库中,有一个特别的字符EOF(stdio.h中这个定义#define EOF (-1)),它表示:文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
但是,C语言中,当把数据以二进制形式存放到文件中时,就会有-1值的出现,此时不能采用EOF作为二进制文件的结束标志。为解决这个问题,ANSI C提供一个feof函数,用来判断文件是否结束。如果遇到文件结束,函数feof(fp)的值为1,否则为0.
feof函数既可用以判断二进制文件是否结束,也可以用以判断文本文件是否结束。但是要注意feof用以判断文本文件尾时,如果代码编写不当,可能会把文本文中中的文件结束符EOF也读取出来了;具体见http://baike.baidu.com/view/656648.htm
4.知道一个文件是文本文件,还是二进制文件,更多的“提醒”我们,应该选择哪种读写函数。
正如2所说的,数据怎么存不是由文件打开方式决定的,而是由读写函数决定的。
比如说,我们以二进制文件的方式打开一个文件(实际上只是指明了要进行换行符的转换),它更多的是代表一种理念(虚的):我“希望” 这个文件里面的数据是这样的,int类型占4字节,char占1个字节。这种模式下,我用fread(buffer,size0f(int),1,fp) 读取一个int到int变量中。
我们在对一个文件进行操作以前,首先,我们要清楚这个文件到底是文本文件还是二进制文件。文件文件用文本方式打开,二进制文件用二进制方式打开
如果我们要操作一个二进制文件,那么我们就以二进制方式打开(理论上也可以以文件方式打开,但是如果写的二进制数据里面有45时,会转化成45,42存储,见1.这是很有可能发生的)。同时读写的时候用fread,fwrite这两个函数。
如果我要操作一个文本文件,那么我们就以文本的方式打开(理论上也可以以二进制方式打开,但是不保险)。同时读写的时候用读写字符的那些函数fprintf,fscanf ,fgetc,fputc,putw,getw,fgetc,fputs.
转:http://blog.csdn.net/sszgg2006/article/details/7420319
相关推荐
我看了很多,只有这个一针见血,读后感就觉很清晰,不会更加迷惑
稍微了解C程序设计的人都知道,文本文件和二进制文件在计算机上面都是以0,1存储的,那么两者怎么还存在差别呢?对于编程人员来说,文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开...
(2)保存、打开指定位置的文本文件; (3)具有输入输出界面。 四、 加密(10) 要求:(1)输入任意一段明文M,以及密钥K; (2)根据以下公式将其转换为密文C。 Ci = mi + K ,其中i = 0,1,……n-1 , K 为密钥; ...
(2)保存、打开指定位置的文本文件; (3)具有输入输出界面。 四、 加密(10) 要求:(1)输入任意一段明文M,以及密钥K; (2)根据以下公式将其转换为密文C。 Ci = mi + K ,其中i = 0,1,……n-1 , K 为密钥; ...
文件可以分为文本文件和二进制文件两种类型: 文本文件(Text File):文本文件是由字符组成的文件,可以使用文本编辑器打开并查看其内容。文本文件中的数据是以文本形式存储的,例如ASCII码或Unicode编码。C语言中...
其意义是打开C驱动器磁盘的根目录下的文件file_a, 这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。"\\"对于打开磁盘下的文件,要注意两个双斜线...
C语言输入输出函数 1.fopen()函数 fopen函数用于打开文件,其调用格式为:FILE*fopen(...对磁盘来说就是文本文件和二进制文件。本软件为了便于让读者易理解TurboC2.0语言而没有对流和文件作特别区分。
C语言文件操作部分相关资料,主要讲解内容:文件的分类,文件的打开与关闭,文件的读写
文件处理在编程中是一个基础且关键的部分,能够帮助开发者读取、写入和操作各种类型的文件,如文本文件、二进制文件等。以下是对这份资源的概括: 知识要点和内容: 文件基本操作: 学习如何打开、创建、关闭文件...
6. 把一个文本文件读入内存时,要将ASCII码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。 7. 标准...
1、文件分为ASCII文件和二进制文件,ASCII文件也称文本文件,由一系列字符组成,文件中存储的是每个字符的ASCII码值。 2、FILE *fp; FILE是文件类型标识符,是C编译系统定义好的一个结构体类型,结构体中含有...
打开方式:“r”(只读) 为输入打开一个文本文件“w”(只写) 为输出打开一个文本文件“a”(追加) 向文件文件尾添加数据“rb”(只读) 为输入打开一个二进制文件“wb”(只写) 为输出打开一个二进制文件“r+”(读写) 为...
1、文件分为ASCII文件和二进制文件,ASCII文件也称文本文件,由一系列字符组成,文件中存储的是每个字符的ASCII码值。 2、FILE *fp; FILE是文件类型标识符,是C编译系统定义好的一个结构体类型,结构体中含有文件名...
C语言把数据看作是一连串的字符(字节),根据数据的组成形式,分为ASCII文件和二进制文件。 文本文件又称ASCII文件,每个字节存放一个ASCII码,代表一个字符。如1、2的ASCII码分别为49、50,所以整数12用ASCII...
1、讲解fopen函数打开文件时使用文本模式和二进制模式的区别; 2、全面讲解各种C语言f族函数的功能和调用方法;
可以将文本文件使用huffman编码的方式加以压缩的小程序,可是输出压缩比例与压缩时间,由于使用的是文本打开方式,从而只能打开文本文件,可以自行改为二进制打开以实现任意文件压缩,由于机制简单,故请有需要者...
文本文件和二进制文件 383 在二进制文件中保存实数 384 显示文件自身 386 13-3 printf函数与scanf函数 389 printf函数:带格式输出 389 scanf函数:带格式的输入 393 总结 397 附录 C语言简介 399 C语言的...
12.2.1 打开文件 463 12.2.2 文件重命名 465 12.2.3 关闭文件 465 12.2.4 删除文件 466 12.3 写入文本文件 466 12.4 读取文本文件 467 12.5 将字符串写入文本文件 470 12.6 从文本文件中读入字符串 471 ...
C语言实例解析精粹(第二版) 光盘代码 本文件包括以下内容: ※ 1、文件说明 ※ 2、源码操作说明 ※ 3、光盘目录清单 ◎ 源码操作说明 源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以...