第十六章文件 161C语言文件的概念 文件:记录在外部介质的数据集合。 C语言中,对于输入输岀的数据按“数据流”的形式处理 C语言中,输入,输出文件都以数据流的形式存储在介质上。 存取方式:顺序存取和直接存取。 c顺序存取:读或写的操作,总是从文件的开头开始顺序读写
第十六章 文件 16.1 C语言文件的概念 •文件:记录在外部介质的数据集合。 •C语言中,对于输入,输出的数据按“数据流”的形式处理。 •C语言中,输入,输出文件都以数据流的形式存储在介质上。 •存取方式 :顺序存取和直接存取。 •顺序存取:读或写的操作,总是从文件的开头开始,顺序读写
直接存取:又名随机存取首先读写字节号,然后直接对此 位置上的数据进行操作 对文件的输入或输出的操作实际上对缓冲区的操作 162文件指针 文件指针:指向一个结构体类型的指针变量 形式FILE*指针变量名 如FIE*f1,*fp2;/*fp1,fp2称为文件指针* <
16.2 文件指针 文件指针:指向一个结构体类型的指针变量. 形式:FILE *指针变量名; 如:FILE *fp1,*fp2; /* fp1,fp2 称为文件指针*/ •直接存取:又名随机存取.首先读写字节号,然后直接对此 位置上的数据进行操作. •对文件的输入或输出的操作实际上对缓冲区的操作
16.3打开文件 对文件进行操作前,必须打开文件,使得读写文件与实际 的数据联系起来可用库函数 fopen. 调用形式: fopen(文件名,文件使用方式) ●函数返回一个指向FILE类型的指针 如fiE*fp fp=fopen(file_","r'"); 调用之后:fp指向了文件file_a
•对文件进行操作前,必须打开文件,使得读写文件与实际 的数据联系起来.可用库函数fopen. •调用形式:fopen(文件名,文件使用方式); •函数返回一个指向FILE类型的指针 •如:FILE *fp; fp=fopen(“file_a”,”r”); 调用之后:fp指向了文件file_a. 16.3 打开文件
无论用何种方式打开,若打开文件出现 了错误, fopen函数将返回NULL,为了正 确打开文件,建议用以下的程序段 if(fp=fopen(file a,r))==NULL) printf( cannot open this file! n); exit(o) <
无论用何种方式打开,若打开文件出现 了错误,fopen函数将返回NULL,为了正 确打开文件,建议用以下的程序段: if((fp=fopen(“file_a”,”r”))= =NULL) {printf(“cannot open this file!\n); exit(0); }
常用的文件打开文件方式 b b +”rb w, wb+ a+>ab+ 注:当运行一个C程序时系统会自动打开文 件 文件指针为 stdin, stdout stderr,并在 stdio h 头文件中进行了说明
常用的文件打开文件方式: “r”,“rb” “w”,”wb” “a”,”ab” “r+”,”rb” “w”,”wb+” “a+”,”ab+” 注:当运行一个C程序时,系统会自动打开文 件 文件指针为:stdin,stdout,stderr,并在stdio.h 头文件中进行了说明
164关闭文件 当对文件的读写操作后,必须关闭它 调用形式 fclose((文件指针) 返回成功函数返回0,否则返回非0 165调用get(iget)和putc(fput)函数进行 输入和输出 <
16.4 关闭文件 当对文件的读写操作后,必须关闭它 调用形式:fclose(文件指针) 返回成功:函数返回0,否则返回非0. 16.5 调用getc(fgetc)和putc(fputc)函数进行 输入和输出
当打开文件后,我们可以对文件进行输入和输出,可调用如 下函数 1调用putc(或fpuc)函数输出一个字符 调用形式:putc(chfp) 功能将字符ch写到文件指针为所指的文件中去 输出成功函数返回所输出的字符否则返回EOF值 注 fputc函数的调用形式和功能与之完全相同 <
当打开文件后,我们可以对文件进行输入和输出,可调用如 下函数 1.调用putc(或fputc)函数输出一个字符 调用形式: putc(ch,fp); 功能:将字符ch写到文件指针为fp所指的文件中去 输出成功:函数返回所输出的字符,否则返回EOF值. 注:fputc函数的调用形式和功能与之完全相同
例16.1把从键盘输入的文本按原样输出到名为 fle_ada文件中去用字符@作为结束标志 # include“ stdio. h main( FILE *fpout char c if((fpout fopen(file adat, W)=NULL) printf( cant open this file! n); exit(0);) ch=getchar while(ch!=(@) &fputc(ch, fpout ) ch-getchar0: 1 fclose(spout)
例16.1 把从键盘输入的文本按原样输出 到名为 file_a.dat文件中去,用字符@作为结束标志. #include “stdio.h” main() { FILE *fpout; char ch; if((fpout=fopen(“file_a.dat,”w”))==NULL) {printf(“can’t open this file!\n);exit(0);} ch=getchar(); while(ch!=‘@’) {fputc(ch,fpout); ch=getchar();} fclose(fpout); }
2.调用getc(或 fgetc)函数输入一个字符 调用形式:ch= getc(pf) 功能:从pf指定的文件中读入的一个字符赋给变量ch 例162把一个已存在磁盘上的 file adat文本文件的内容, 输出到屏幕上 <
2. 调用getc(或fgetc)函数输入一个字符 调用形式:ch=getc(pf); 功能:从pf指定的文件中读入的一个字符赋给变量ch 例16.2 把一个已存在磁盘上的file_a.dat文本文件的内容, 输出到屏幕上
# include“ stdio.h main( i FILE *fpin; ch char c f(fpin- fopen(“ file a dat,r”)=NULL) printf( cant open this file! n); exit(O)) ch=fgetc(fpin) while(ch!=EOF i putchar(ch); ch=fgetc(fpin); 1 fclose(fpin) <
#include “stdio.h” main() { FILE *fpin; char ch; if((fpin=fopen(“file_a.dat,”r”))==NULL) {printf(“can’t open this file!\n);exit(0) } ch=fgetc (fpin); while(ch!=EOF) { putchar(ch); ch=fgetc(fpin);} fclose(fpin); }