文件的打开与关闭:
- 文件的打开(fopen函数)
(1).函数原型:
FILE *fopen(char *path,char *mode);
(2).功能说明:按照mode方式打开由path指定的文件,如果未找到path文件:若以读方式打开,则会打开失败;若以写方式打开,则会创建一个由path指定的名字建立一个新文件;
(3).参数说明:path是一个字符指针,它将指向要打开或建立的文件的文件名字符串。mode是一个指向文件处理方式字符串的字符指针,处理方式见下表;
文件使用方式 | 含义 |
"r"(只读) | 为输入打开一个文本文件 |
"w"(只写) | 为输出打开一个文本文件 |
"a"(追加) | 向文本文件尾增加数据 |
"rb"(只读) | 为输入打开一个二进制文件 |
"wb"(只写) | 为输出打开一个二进制文件 |
"ab"(只写) | 向二进制文件尾增加数据 |
"r+"(读写) | 为读/写打开一个文本文件 |
"w+"(读写) | 为读/写建立一个新的文本文件 |
"a+"(读写) | 为读/写打开一个文本文件 |
"rb+"(读写) | 为读/写打开一个二进制文件 |
"wb+"(读写) | 为读/写建立一个新的二进制文件 |
"ab+"(读写) | 为读/写打开一个二进制文件 |
- 文件的关闭(fclose函数)
(1).函数原型:
int fclose(FILE *fp);
(2).功能说明:关闭由fp指向的文件。(文件打开操作后务必记得关闭,因为不关闭可能在其他操作中丢失数据等等)
(3).参数说明:fp为打开文件的文件指针;
例如:
//定义一个名叫fp文件指针 FILE *fp; //判断按 读方式 打开一个名叫test的文件是否失败 //因为打开文件可能会失败,所以尽量加上此判断; if((fp=fopen("test","r")) == NULL)//打开操作不成功 { printf("The file can not be opened.\n"); exit(1);//结束程序的执行 } fclose(fp); //关闭打开的文件:
文件的读写操作:
1. 从文件中读取一个字符(fgetc函数)
函数原型:int fgetc(FILE *fp);
2. 向文件中写入一个字符(fputc函数)
函数原型:int fputc(char ch,FILE *fp);//将字符ch写入到fp指向的文件中;
3. 从文件中读取一个字符串(fgets函数)
函数原型:char *fgets(char *str,int n,FILE *fp);//从fp文件中读取n-1个字符放到str字符数组里(或读取到文件末尾),并在str数组最后加上’\0’
4. 向文件中写入一个字符串(fputs函数)
函数原型:int fputs(char *str,FILE *fp);//把str中字符串写入到fp指的文件中
5. fscanf函数和fprintf函数
函数原型:int fscanf(FILE *fp,char *format,arg);//format为格式字符串,arg为输入列表//例如:fscanf(fp,”%d”,&i);
int fprintf(FILE *fp,char *format,...);//例如:fprintf(fp,”%s”,str);
其实fscanf与fprintf函数跟scanf,printf功能差不多,只是一个从键盘获得数据一个从文件获得;从一个将数据写入屏幕一个写入文件。