
被C语言程序处理的文件称为数据文件,C语言程序文件也可以作为数据文件来处理,它属于文本类型的数据文件。
1. 打开数据文件函数
打开文件就是要把在外存上处于静止状态的数据文件改变为活动状态,以便进行访问。关闭文件就是把处于活动状态的文件恢复到原来的静止状态。
打开一个文件,需要调用C语言库函数中的fopen()函数,得到相对应的文件流。该函数的原型声明为:
FILE* fopen(const char* fname, const char* mode);
fname参数:用于指向要打开文件的文件名字符串。
mode参数:用于指定打开文件的方式,它也是以字符串的形式给出的。
fname参数和mode参数的char*类型的前面都使用的const保留字进行修饰,这样就规定了fname和mode都是常量指针参数。确保调用它的字符串内容不会被修改。
如果调用该函数成功,则返回一个文件流,即FILE*类型的文件指针;如果调用该函数失败,则返回空指针(NULL),其值为0。
2. 打开数据文件方式
打开数据文件的方式有12种:
(1) "r" //打开一个用于输入的文本文件,若文件不存在则打开失败。
(2) "w" //打开一个用于输出的文本文件,若文件存在则清空,若不存在则建立。
(3) "a" //打开一个用于向文件末尾追加数据的文本文件,若不存在则建立新文件,若文件存在,则保持原有内容不变,只向末尾添加信息。
(4) "rb" //打开一个用于输入的二进制文件。它同第1种"r"相似,区别是文本文件,还是二进制文件。
(5) "wb" //打开一个用于输出的二进制文件。它与第2种"w"相似,区别同样是文本文件,还是二进制文件。
(6) "ab" //打开一个用于向文件尾部追加数据的二进制文件。此种与上述第3种"a"相似。
(7) "r+" //打开一个同时用于读和写操作的文本文件,当不存在所指定的文件时则打开失败。
(8) "w+" //打开一个同时用于读和写操作的文本文件,但当文件不存在时则建立一个新文件。
(9) "a+" //打开一个同时用于读和追加写操作的文本文件,不存在则建立个新文件。
(10) "rb+" //打开一个同时用于读和写操作的二进制文件,不存在该文件则表明打开失败。
(11) "wb+" //打开一个同时用于读和写操作的二进制文件,不存在该文件时则建立它。
(12) "ab+" //打开一个同时用于读和追加写操作的二进制文件,不存在则建立它。
3. 打开数据文件举例
(1) FILE* fp1;
fp1=fopen("xxk1.dat", "w"); //以只写方式打开文本文件
(2) FILE* fp2=fopen("d:\\C语言练习\\wr.dat", "r");
//以只读方式打开文本文件
(3) FILE* fp3=fopen("xxk2.ran", "wb+");
//以读和写随机方式打开二进制文件
4. 数据文件的关闭
关闭一个文件,需要调用C语言库函数中的fclose()函数。
int fclose(FILE* fp);
如果fp文件流所对应的文件关闭成功则返回0,否则返回-1(EOF)表示失败。/p>
如关闭已经打开的fp1文件流所对应的"xxk1.dat"文件,则调用:
fclose(fp1);