目录
1.1.1 调用形式:文件指针名=fopen(文件名,文件打开方式)
2 (文本文件)字符读写函数 fgetc()/fputc()
3(文本文件)字符串读写函数 fgets()/fputs()
4(文本文件)格式化读写函数 fscanf()/fprintf()
5.(二进制文件)读写函数 fread()/fwrite()
6.3.1 调用形式: fseek(fp,offset,from);
1 文件的打开与关闭 fopen()/fclose()
文件操作步骤:
void main()
{
FILE *fp; //定义文件指针
fp=fopen("a.TXT","r"); //fopen("文件名","文件打开方式")
//文件指针指向磁盘文件缓冲区
//文件读写操作(这里r只能读)
fclose(fp);
}
1.1 fopen()
1.1.1 调用形式:文件指针名=fopen(文件名,文件打开方式)
fp=fopen("a.TXT","r");
“文件指针名”:已说明的FILE类型的指针变量
“文件名”:被打开的文件名,是一个字符指针,指向要打开的文件的文件名字符串
1.1.2 返回值
(1)执行成功:返回包含文件缓冲区等信息的FILE型地址,赋给文件指针fp。
(2)执行不成功:返回NULL空指针。
1.2 fclose()
1.2.1 调用形式:fclose(文件名);
fclose(fp);
1.2.2 返回值
(1)执行成功:返回0。
(2)执行失败:返回EOF。EOF称为文件结束符,值为-1。
1.3 fopen()和fclose()的使用
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
if((fp = fopen("a.TXT","w"))==NULL)//打开文件
{
printf("File open error!\n);
exit(0); //表示关闭所有打开的文件,并终止程序的执行
}
//对文件进行操作
if(fclose(fp))
{
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
2 (文本文件)字符读写函数 fgetc()/fputc()
2.1 fgetc()
2.1.1 调用形式
ch = fgetc(fp);
功能:从文件的当前位置读一个字符给到ch
2.1.2 返回值
(1)读字符成功:返回所读字符。
(2)读字符失败:返回文件结束符EOF。
2.2 fputc()
2.2.1 调用形式
fputc(ch,fp);
功能:把字符ch写到文件
2.2.2 返回值
(1)写文件成功:返回所写字符。
(2)写文件失败:返回文件结束符EOF。
3(文本文件)字符串读写函数 fgets()/fputs()
3.1 fgets()
3.1.1 调用形式
fgets(str,n,fp);
功能:从文件当前位置读一个长度不超过n-1的字符串,存入字符数组str。
3.1.2 返回值
(1)读字符串成功:返回str。
(2)读字符串失败:返回空指针NULL。
3.2 fputs()
3.2.1 调用形式
fputs(str.fp);
功能:将字符串str写入到文件中
3.2.2 返回值
(1)写字符串成功:返回0。
(2)写字符串失败:返回非0值。
4(文本文件)格式化读写函数 fscanf()/fprintf()
4.1 fscanf()
4.1.1 调用形式
fscanf(fp,"%f %s %d",&f,s,&i);
//fscanf(文件指针,格式字符串,输入列表)
功能:从文件进行格式化读操作,遇到空格或换行时结束。
4.1.2 返回值
(1)读成功:返回读入的参数个数。
(2)读失败:返回EOF。
4.2 fprintf()
4.2.1 调用形式
fprintf(fp,"%f %s %d",3.14,"PI",1000);
//fscanf(文件指针,格式字符串,输出列表)
功能: 进行格式化写操作,写入文件。
4.2.2 返回值
(1)写成功:返回写入的参数个数。
(2)写失败:返回EOF。
5.(二进制文件)读写函数 fread()/fwrite()
5.1 fread()
char name[10]={0};
fread(name,sizeof(char),strlen(name),fp);
//fread(buffer,size,count,fp);
//buffer是指针,指向读入数据的存放地址
//size是指一个数据项的大小
//count是要进行读写的数据项的个数
功能:从二进制文件中读入一个数据块到变量。
5.2 fwrite()
char *str = "hello"
fwrite(str,sizeof(char),strlen(str),fp);
//fwrite(buffer,size,count,fp);
功能:向二进制文件中写入一个数据块。
6 文件定位函数
6.1 feof()
6.1.1 调用形式
feof(fp);
功能:判断fp指针是否已经到文件末尾。
6.1.2 返回值
(1)如果文件指针到达文件末尾:返回非零值。
(2)如果文件指针未达到文件末尾:返回0.
6.2 rewind()
调用形式:
rewind(fp);
功能:定位文件到文件首部,即打开文件时文件指针所指向位置。
6.3 fseek()
6.3.1 调用形式: fseek(fp,offset,from);
功能:用来控制指针移动,将文件指针(fp)从文件起始位置(from)移动若干字节(offset)。
fseek(fp,20L,0);
//将文件位置指针移动到离文件首部20字节处
fseek(fp,-20L,SEEK_END);
//将文件位置指针移动到离文件尾部前20字节处
6.3.2 返回值
(1)成功:返回0;
(2)失败:返回-1;
6.4 ftell()
6.4.1 调用形式
ftell(fp);
功能:获取当前文件指针位置,即相对于文件开头的位移量(字节数)。
6.4.2 返回值
(1)成功:返回相对于文件开头的位移量(字节数)。
(2)失败:返回-1.