C语言中与文件有关的操作
对文件进行操作之前,必须通过库函数fopen打开该文件,该库函数存在于头文件<stdio.h>中。该函数返回的是一个可以用于文件读写操作的指针,该指针称为文件指针。
在程序中,只需按照下列声明方式声明一个文件指针即可:
FILE *fp;
FILE *fopen(char * name, char *mode);
Fp是一个指向结构FILE的指针,并且,fopen函数返回一个指向结构FILE的指针。
在程序中,调用fopen函数的格式如下:
fp=fopen(name, mode);
name为一个字符串,它包含文件名。第二个参数mode是访问模式,也为一个字符串。
mode/访问模式 意 义
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
如果文件打开发生错误,fopen将返回NULL。
文件被打开后,就要考虑采用哪种方法对文件进行读写,其中,getc和putc函数最为简单。
getc从文件中返回下一个字符,他需要知道文件指针,以确定对哪个文件执行操作:
int getc(FILE *fp)
getc函数返回fp指向的输入流中的下一个字符。如果到达文件尾或出现粗无,函数返回EOF。
putc是一个输出函数,
int putc(int c ,FILE*fp)
该函数将字符c写入到fp指向的文件中,并返回写入的字符,如果发生错误,返回EOF。
注意:putc和getc是宏而不是函数。
对于文件的格式化输入和输出,使用函数fscanf和fprintf。他们与scanf和printf函数的区别仅仅在于他们的第一个参数是一个指向所要读写的文件的指针,第二个参数是格式串。如下所示:
int fscanf(FILE *fp, char *format, ...)
int fprintf(FILE *fp, char *format, ...)
函数 int fclose(FILE *fp)
执行和fopen相反的操作,它断开由fopen函数建立的文件指针和外部名之间的联系,并释放文件指针供其他文件使用。