1.文件分类
- 概念
1) ASCII文件,又称文本文件,每一个字节放一个字符的ASCII代码;
2)二进制文件,又称映像文件,按二进制形式存储。用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。 - 两者的优缺点:
1.ASCII文件:
优点:字节与字符一一对应,便于对字符进行逐个处理;
缺点:一般占存储空间较多,而且要花转换时间(二进制形式与ASCII码间的转换)。
二进制文件编码是变长的,所以它灵活,存储利用率要高些,译码难一些(不同的二进制文件格式,有不同的译码方式)。
2.二进制文件:
优点:可以节省外存空间和转换时间,把内存中的存储单元中的内容原封不动的输出到磁盘(或者其他外部介质)上。
缺点:字节不一定代表一个字符,所以译码难一些(不同的二进制文件格式,有不同的译码方式)
文件的打开和关闭
- 打开文件
- 您可以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE 包含了所有用来控制流的必要的信息。下面是这个函数调用的原型:
FILE *fopen( const char * filename, const char * mode );
即:FILE *fopen( 文件名, 访问方式 );
- 返回值:返回一个指向文件名的指针,即文件信息区的起始地址,通常将fopen函数的返回值赋给一个指向文件的指针变量。如:
FILE *fp; //定义一个指向文件的指针变量fp
fp=fopen(“D:\\file\\test.txt”,“r”); //将fopen函数的返回值赋给指针变量fp
如果打开失败,fopen函数会带回一个空指针NULL。出错的原因可能:
①用 “r” 或 “a” 方式打开一个并不存在的文件;
②磁盘故障
③磁盘已满,无法建立新文件
等等
所以常用如下方法打开文件:
if((fp=fopen(“file”,“r”))==null){
printf(“cannot open this file\n”);
exit(0);//需要头文件 #include<stdlib.h>
}
- 在这里,filename 是字符串,用来命名文件,ASCII文件访问模式 mode 的值可以是下列值中的一个:
如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:
“rb”(只读), “wb”(只写), “ab”(追加),
“rb+”(读写), “r+b”(读写), “wb+”(读写), “w+b”(读写), “ab+”(读写), “a+b”(读写)
- 关闭文件
- 为了关闭文件,请使用 fclose( ) 函数。函数的原型如下:
int fclose( FILE *fp );
即:int fclose( 文件指针);
- 返回值:
如果成功执行关闭操作,则返回 0;
否则返回 EOF(-1);