一、文件指针
文件指针是一个指针但它并不是指向文件,文件指针在程序中用来标识(代表)一个文件,在打开文件的时候得到文件指针,文件指针就用来代表我们所打开的文件。
定义文件指针:
FILE * 指针变量标识符;
FILE为大写,需要包含<stdio.h>。FILE是系统使用typedef定义出来的有关文件信息的一种结构体类型,结构体中含有文件名、文件状态和文件当前位置等信息。
在缓冲文件系统中,每个被使用的文件都要在内训中开辟一块FILE类型的区域,存放与操作文件相关的信息。
※※注意:C语言中有三个特殊的文件指针无需定义,可以直接使用。
stdin:标准输入,默认为当前终端(键盘)
stdout:标准输出,默认为当前终端(屏幕)
stderr:标准错误输出设备文件,默认为当前终端(屏幕)
总结:文件指针是一个FILE类型的结构体指针,用来标识一个文件。
二、fopen和fclose函数
打开文件fopen
函数声明:
FILE *fopen(const char *path,const char *mode)
函数说明:
fopen函数的功能是打开一个已经存在的文件,并返回这个文件的文件指针,或者创建一个文件,并打开此文件,然后返回文件的文件指针。
函数参数:
参数1:打开的文件的路径
① 绝对路径,从根目录开始的路径名称
②相对路径
参数2:文件打开的方式(只读,只写,可读可写)。
读写权限: r w a +
r:以只读方式打开文件,文件不存在返回NULL,文件存在,且打开文件成功,返回文件指针。
例:
FILE *fp;
fp=fopen("test.txt","r");
w:以只写方式打开文件,若文件不存在,则以指定文件名创建此文件,并且打开文件。若文件存在,先清空文件内容,打开文件,然后进行写的操作。若文件打不开(比如某文件只读),则返回NULL。
例:
FILE *fp;
fp=fopen(“test.txt","w");
a:以追加方式打开文件,若文件不存在,以制定文件名创建此项目(同w)。若文件存在,在文件的结尾处进行写的操作。
说明:
如果不加a的话,打开文件的时候读写位置在文件的开始,对文件进行读写时,从文件开始读写。如果加a,打开已经存在的文件,读写位置在文件末尾。
带“+”都是可读可写的文件。
返回值:
成功:打开的文件对应的文件指针。
失败:返回NULL。
关闭文件fclose
函数的头文件:#include<stdio.h>
函数的声明:
int fclose(FILE *fp);
函数的说明:
关闭fp所代表的文件,关闭文件后就不能再对文件进行读写等操作了。
返回值:
成功返回0,失败返回非0。可通过返回值判断文件是否关闭。
例:
#include <stdio.h>
int main()
{
FILE* fp1,*fp2;
int ret;
fp1=fopen(".\\test.txt","r+");
if(fp1==NULL)
{
printf("fopen 失败\n");
perror("fp1");
return 0;
}
printf("打开文件 test.txt成功\n");
ret=fclose(fp1);
if(ret==0)printf("关闭文件成功\n");
else
{
printf("关闭文件失败\n");
}
return 0;
}
第一次写博客,若是有什么错误或需要改进的地方,希望大家指出。