资源描述:
《文件指针及字符串输入形式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、概述1.文件指针FILE*fp;2.打开文件FILE*fp;fp=fopen(“file_a”,”r”)指针fp指向了文件file_a“w”或”w+”每次打开文件将从文件的起始位置开始写,文件中原有内容将全部消失。“a”或”a+”每次打开文件时将在原有内容的后面添加数据,文件中原有内容将保存。“r+”为了读和写打开文本文件,读和写总是从文件的起始位置开始,写时只是依次覆盖原有内容,未覆盖到的将保留。例33.关闭文件fclose(fp)4.对文件进行字符的输入和输出函数putc(ch,fp)或fputc(ch,fp):将字符ch写到文件指针fp
2、所指的文件中去。ch=getc(fp)或ch=fgetc(fp):从fp指定的文件中读入一个字符赋给变量ch.5.判断文件结束函数feof()如果遇到文件结束,函数feof(fp)的值为1,否则为06.从文件中读取数据给电脑:fscanf(fp,”%d%d”,&a,&b)从fp所指的文件中读入两个整数放入变量a和b中,在文件中的两个整数之间是用空格(或回车符、跳格符)隔开的将运行结果存入到文件中:fprintf(fp,”%d%d”,x,y)把x和y两个整型变量中的整数按%d的格式输出到fp所指的文件中。为了以后便于读入,两个数之间应当用空格隔
3、开。例2,例57.读写字符串函数fgets(str,n,fp)从fp所指文件中读入n-1个字符放入以str为起始地址的空间内,读入过程中读到换行符或一个EOf,则结束读入。读入结束后,系统自动在最后加’ ’。fputs(str,fp)把以str为首地址的字符串输出到fp所指的文件中,字符串中最后的’ ’并未输出到文件中,也不自动在文件中该字符串末尾加’’,因此文件中各字符串是首尾连接的,为了便于读入,在输出字符串时,应当注意人为地加’’这样的字符。例48.fread(buffer,size,count,fp)从fp所指文件中读取c
4、ount个,每个大小为size的数据块放入以buffer为首地址的空间里。fwrite(buffer,size,count,fp)把以buffer地址开始的count个数据块,每个数据块类型为size的数据输出到fp所指文件中。例1,例69.文件定位函数若fp指向二进制文件,可以有位移量:seek_set文件开始seek_end文件末尾seek-cur文件当前位置fseek(fp,30l,seek_set)使文件位置指针从文件的开头后移30个字节fseek(fp,-10l*sizeof(int),seek_end)使文件位置指针从文件尾部前移
5、10个sizeof(int)若fp指向文本文件,位移量必须是0fseek(fp,0l,seek_set)使文件位置指针移到文件开始fseek(fp,0l,seek_end)使文件位置指针移到文件末尾10.rewind(fp)使文件位置指针回到文件开头。例题例1:有以下程序#includemain(){FILE*pf;char*s1=〞China〞,*s2=〞Beijing〞;pf=fopen(〞abc.dat〞,〞wb+〞);fwrite(s2,7,1,pf);rewind(pf);fwrite(s1,5,1,pf);fcl
6、ose(pf);}以下程序执行后abc.dat文件的内容是BA)ChinaB)ChinangC)ChinaBeijingD)BeijingChina例2:有以下程序#includemain(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“dl.dat”,”w”);for(i=0;i<3;i++)fprintf(fp,”%d”,a[i]);fprintf(fp,””);fclose(fp);fp=fopen(“dl.dat”,”r”);fscanf(fp,”%d”,&n);fclose(f
7、p);printf(“%d”,n);}程序的运行结果是B从文件中读取整型数据时读到间隔符(回车、空格等)结束A)12300B)123C)1D)321例3:有以下程序#includemain(){FILE*f;f=fopen(“filea.txt”,”w”);fprintf(f,”abc”);fclose(f);}若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为CA)helloabcB)abcloC)abcD)abchello例4:以下程序#include8、.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,”w”);fputs(“abc”,fp);fclose(fp