资源描述:
《c语言程序设计教程第12章new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、231文件12.1文件概述12.1.1文件的概念及文件分类图12.1文件的结构表12.1整数2248存储方式字符'2''2''4''8'ASCII码00110010001100100011010000111000表12.2内存中存储形式整数2248二进制形式000010001100100012.1.2文件系统图12.2缓冲文件系统12.1.3文件指针第12章章文件231typedefstruct{shortlevel;/*记录缓冲区满或空的程度*/unsignedflags;/*文件状态标志*/charfd;/*
2、与文件相关的标识符,即文件句柄*/unsignedcharhold;/*当缓冲区中无数据时(level=0)不读取字符*/shortbsize;/*缓冲区大小,默认为512字节*/unsignedchar*buffer;/*文件缓冲区的指针*/unsignedchar*curp;/*当前激活缓冲区的指针*/unsignedistemp;/*临时文件标识*/shorttoken;/*常用于文件有效性检查*/}FILE;12.2文件的打开与关闭12.2.1文件的打开表12.3文件的打开模式打开模式说明r只读,打开一个
3、文本文件w只写,建立一个文本文件a追加,向文本文件末尾添加数据rb只读,打开一个二进制文件wb只写,建立一个二进制文件ab追加,向二进制文件末尾添加数据r+读写,打开一个文本文件,可读/写w+读写,打开一个文本文件,先写后读a+读写,打开一个文本文件,可读、追加写rb+读写,打开一个二进制文件,可读/写wb+读写,打开一个二进制文件,先写后读ab+读写,打开一个二进制文件,可读、追加写12.2.2文件的关闭12.3文件的读写12.3.1字符读写函数#includevoidmain()第12章章文
4、件231{charch;FILE*fp;if((fp=fopen("myfile1.txt","w+"))==NULL){printf("cannotopenfile");exit(0);}printf("Pleaseinputthestring:");ch=getchar();while(ch!='#'){fputc(ch,fp);ch=getchar();}fclose(fp);}图12.3用“记事本”打开的myfile1.txt文件#includevoidmain(){charch;F
5、ILE*fin,*fout;if((fin=fopen("myfile1.txt","r"))==NULL)/*以只读方式打开源文件*/{printf("cannotopenfile");exit(0);}if((fout=fopen("myfile2.txt","w"))==NULL)/*以只写方式打开目标文件*/{printf("cannotopenfile");exit(0);}ch=fgetc(fin);/*从源文件中读取一个字符*/while(ch!=EOF)/*当文件未结束时*/{fputc(
6、ch,fout);/*向目标文件中写入一个字符*/ch=fgetc(fin);}fclose(fin);/*关闭源文件*/fclose(fout);/*关闭目标文件*/}12.3.2字符串读写函数第12章章文件231#includevoidmain(){charstr[3][20]={"Beijing","Shenyang","Haerbin"},temps[20];inti;FILE*fp;if((fp=fopen("myfile3.txt","w"))==NULL){printf("cann
7、otopenfile");exit(0);}for(i=0;i<3;i++){fputs(str[i],fp);/*写入字符串*/fputc('',fp);/*写入一分隔符*/}fclose(fp);if((fp=fopen("myfile3.txt","r"))==NULL){printf("cannotopenfile");exit(0);}printf("Thefilecontentis:");while(fgets(temps,20,fp)!=NULL)/*读入字符串*/printf("%
8、s",temps);fclose(fp);}12.3.3格式化读写函数#includevoidmain(){intstuid,score,stunum,i;floataverage;FILE*fp;printf("输入学生数:");scanf("%d",&stunum);if((fp=fopen("stuscore.txt","w"))==NULL){p