C语言文件指针,如何对文件进行操作,文件指针FILE,指向文件指针 |
您所在的位置:网站首页 › c语言打开文件并写入数据库 › C语言文件指针,如何对文件进行操作,文件指针FILE,指向文件指针 |
C语言文件的定义,如何对文件进行操作,文件指针,如何定义指向文件的指针,通过文件指针对文件进行操作,文件应用举例,二进制文件相关操作,文件定位 一、什么是文件1、文件的定义:文件是相关信息的集合 信息: 文字、文件的扩展名为:txt,doc 声音、文件的扩展名为:mp3,wav,wma 图像、文件的扩展名为:bmp,jpg,gif 视频、文件的扩展名为:AVI、mov、rmvb、rm、FLV、mp4、3GP 2、文件的取名: 主文件名.扩展名 1234563.txt 3、文件的分类(在C程序当中对文件的分类) A:文本文件(存放字符/文字的文件.txt) B:二进制文件(.data)把结构体的信息写入的文件被称为二进制文件 二、C程序对文件的操作读操作:从文件里面把文件的内容取出来,并输出到屏幕(不会改变文件的内容) 写操作:把一些内容往文件里面写入(会改变文件的内容) 1、C程序对文件的操作C程序通过文件的指针并加上一些函数然后对文件进行操作的 2、什么是文件指针文件指针:这个指针是用来存放文件的首地址。这个指针是专门用来指向文件的。 3、如何来定义文件指针格式: FILE *指针名;比如:定义了一个指针为fp,这个指针以后只能指向文件,之后要把文件的首地址赋值给该指针 FILE *fp; 4、如何给文件指针赋予初值如何赋值:一般通过fopen这个函数对指针进行赋值 fopen功能: A:打开文件。 B:同时会返回打开的那个文件的首地址。 C:该函数实际上就是地址。 格式: fopen("要打开的文件名","打开方式");说明: 1、打开方式是表明打开文件之后要读还是要写 2、打开方式: r:要打开文件之后要读文件(read) 文本文件 w:要打开文件之后要写文件(write) 覆盖 a:要打开文件之后要追加文件(append) 把新的数据加到末尾 rb:要打开二进制文件进行读 wb:要打开二进制文件进行写 如果打开方式中加了一个"b"就表示要对二进制文件进行操作 3、如果打开的文件名的路径当中含义 \ 的时候就要用双杠 \ \ 。 //打开My.txt这个文本文件进行读的操作。 fopen("c:\\chen\\My.txt","r");
关闭文件 A:通过fopen函数能够打开文件,之后对文件进行操作。 B:操作完毕之后,一定要关闭文件。 C:格式:fclose(文件指针名); 程序操作文件的一般格式: FILE *fp;//定义一个文件指针 fp=fopen("打开文件名","打开方式");//把文件指针具体的去指向一个文件 //然后对文件进行操作 fclose(fp);//要关闭文件4、对文件操作的函数: 1)fgetc函数: 功能:从fp所指向的文件里面读取出一个字符。 (r) 格式:字符型变量=fget(fp); //fp是一个文件指针 文件一定要以读的方式打开,之后指针会自动向后移动一个位置 2)fputc函数: 功能:从fp所指向的文件里面写入一个字符。 (w) 格式:fputc(要写入的字符,fp); 文件一定要以写的方式打开,之后指针会自动向后移动一个位置 3)fgets函数: 功能:从fp所指向的文件里面读取出来一个字符串 格式:fgets(str,n,fp);它会读出n-1个字符,留一个字符为\0 str:存放字符串的一个数组,n表示读取出来字符的个数,fp是文件的指针 4)fputs函数 功能:把字符串写入到fp和指向的文件当中去 格式:fputs(str,fp);把str当中所有的字符写入到fp里面去 5)专门用来对二进制文件进行操作 A:fwrite函数: 功能:把一个结构体变量当中的信息以二进制的形式写入到指定的文件当中去 格式:fwrite(&结构体变量名,sizeof(结构体类型),1,fp); B:fread函数: 功能:从fp所指向的文件当中读出一条信息,存放在一个结构体变量当中 格式:fread(&结构体变量名,sizeof(结构体类型),1,fp); 6) feof函数; 功能:判断指向文件的指针是否指向文件的末尾 格式:feof(文件指针);返回1则代表指向了文件的末尾,返回0则代表没有指向文件末尾 feof(fp); 一般的用法:while(!feof(fp)); //(!feof(fp))返回0则代表指向了文件的末尾,返回1则代表没有指向文件末尾 三、对文件进行操作的案例 1、对文件进行读取操作1)从文件当中读取一个字符 ch=fgetc(fp); //表示从fp指向的文件当中指向一个字符 ,并存放到变量ch里面 A:新建一个txt文件
该函数返回值为0时没有到末尾 如果返回值为1表示到了末尾 一般: while(!feof(fp))//当不到末尾 #include void main(){ FILE *fp; char ch; //要以读的方式打开一个文本文件,并让指针fp指向这个文件 fp=fopen("c:\\chen\\My.txt","r"); while(!feof(fp)){//当不到文件末尾时就反复的读取 ch=fgetc(fp); //表示从fp指向的文件当中指向一个字符 ,并存放到变量ch里面 printf("%c",ch); } //一定要关闭文件 fclose(fp); }1)向文件当中写入单个字符 A:创建一个文件
fgets(str,f,np);它会读出n个字符,留一个字符为\0,所以器实际字符串的长度为n-1,读取出来的字符串为n-1个
向文件当中输入单个结构体变量 #include typedef struct worker{ char Id[10]; char Name[10]; int Age; }WOR;//结构体类型为WOR void main(){ FILE *fp; WOR w[5]={ {"w1","张三",34}, {"w2","李四",54}, {"w3","二狗",64}, {"w4","狗娃",74}, {"w5","小样",84} }; fp=fopen("c:\\chen\\worker.data","wb");//以写入的方式打开一个二进制文件用fp指向该文件的首地址值 fwrite(&w[0],sizeof(WOR),1,fp);//通过fwrite函数对文件进行写入 fclose(fp);//关闭文件 }运行以后
A:fseek函数 功能:用来移动文件指针到文件的某一个位置 格式:fseek(fp,移动的距离【位移量】,参考点【起始点】); 参考点: SEEK_SET:从文件的开始的位置 SEEK_END:从文件的末尾 SEEK_CUR:文件的当前位置 位移量: 正数表示向文件的末尾移动 为负数表示向文件的开头方向移动 案例一、证明每次调用fgetc指针都会自动向后移动一位 SEEK_SET:从文件的开始的位置 #include #include void main(){ FILE *fp; char ch; //以读的方式打开文件,并将文件指针fp指向文件的开头 fp=fopen("c:\\chen\\My.txt","r"); fseek(fp,2,SEEK_SET); ch=fgetc(fp);//表示从文件里面读取一个字符 printf("%c",ch); fclose(fp); }fseek(fp,2,SEEK_SET);//表示以开始的位置(SEEK_SET)将指向文件的指针(fp)向后移动动两个位置
功能:把文件指针移动带开头 格式:rewind(指向文件的指针); rewind(fp);相当于fseek(fp,0,SEEK_SET);//以文件开头文基准向后移一个单位 #include #include void main(){ FILE *fp; char ch; //以读的方式打开文件,并将文件指针fp指向文件的开头 fp=fopen("c:\\chen\\My.txt","r"); ch=fgetc(fp);//表示从文件里面读取一个字符,并且指针会自动指向下一个位置 printf("%c",ch); rewind(fp);会把指针移动到开头 ch=fgetc(fp);//表示从文件里面读取一个字符,并且指针会自动指向下一个位置 printf("%c",ch); rewind(fp);//要把指针移动到开头 fclose(fp); } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |