资源描述:
《C语言程序设计教程 教学课件 作者 王曙燕 chapter12 文件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第12章文件文件的分类文本文件二进制文件ASCII文件例:整数1949占用4个字节占用2个字节00110001001110010011010000111001'1''9''4''9'0000011110011101文件的操作流程1、建立/打开文件2、从文件中读数据或向文件中写数据3、关闭文件缓冲文件系统文件类型指针用来存放文件的有关信息,每个被使用的文件都在内存中开辟一个区,这些信息是保存在一个结构体变量中的.定义文件类型的指针:FILE*fp;typedefstruct{shortlevel;/*缓冲区“满”或“空”的程度*
2、/unsignedflags;/*文件状态标志*/charfd;/*文件描述符*/unsignedcharhold;/*如无缓冲区不读取字符*/shortbsize;/*缓冲区的大小*/unsignedchar*baffer;/*数据缓冲区的读写位置*/unsignedchar*curp;unsignedistemp;/*临时文件,指示器*/shorttoken;/*用于有效性检查*/}FILE;文件的打开与关闭文件的打开函数(fopen)FILE*fp;fp=fopen(文件名,使用文件方式);函数功能:按指定的文件使用方式
3、打开指定的文件。若文件打开成功,为该文件分配一个文件缓冲区和一个FILE类型变量,返回一个FILE类型指针;若文件打开失败,返回NULL。文件的三种基本使用方式只读方式:为读(输入)文本文件打开文件。若文件不存在,返回NULL。只写方式:为写(输出)文本文件打开文件。若文件不存在,则建立一个新文件;若文件已存在,则清空文件。追加方式:为写(输出)文本文件打开文件。若文件已存在,则保持原来文件的内容,将新的数据增加到原来数据的后面;若文件不存在,则建立一个新文件。文件类型只读方式只写方式追加方式读写模式ASCII文件”r””w”
4、”a””r+””w+””a+”二进制文件”rb””wb””ab””rb+””wb+””ab+”文件关闭函数fclose()文件的打开与关闭FILE*fp;fclose(fp);fp:已经打开的文件指针。函数功能:关闭fp指定的文件,释放该文件的缓冲区、FILE类型变量及文件指针。若文件关闭成功,则返回0;若文件关闭失败,则返回非0值。单字符读写函数写函数:intfputc(charch,FILE*fp);功能:将字符ch写入到文件指针fp指向文件的位置。成功时返回字符本身,否则返回EOF。读函数:intfgetc(FILE*f
5、p);功能:从文件指针fp指向文件的位置读取一个字符,若成功则返回该字符,否则返回EOF。读取完成后指针自动后移指向下一个字符。字符串读写函数写函数:intfputs(char*str,FILE*fp);功能:将字符串str写入到文fp指向文件的位置。成功时返回非0值,否则返回EOF。读函数:char*fgets(char*str,intn,FILE*fp);功能:从fp指向文件的位置n个字符放入字符串str中,若成功则返回该字符串地址,否则返回NULL。格式化读写函数FILE*fp;fprintf(fp,格式控制串,输出项参
6、数表);格式控制串和输出项参数表的规定和使用方法与printf函数相同。函数功能:将输出项按指定格式写入fp所指向的文件中。若输出操作成功,返回写入的字节数;若输出操作失败,则返回EOF。与标准文件的格式输入输出函数scanf和printf相对应,文本文件也有格式输入输出函数fscanf和fprintf。它们的功能和格式基本相同,不同之处在于scanf和printf的读写对象是终端(键盘和显示器),fscanf和fprintf的读写对象是磁盘文件。FILE*fp;fscanf(fp,格式控制串,地址表);格式控制串和地址表的规
7、定和使用方法与scanf函数相同。函数功能:按格式控制串所描述的格式,从fp所指向的文件中读取数据,送到指定的内存地址单元中。若输入操作成功,返回实际读出的数据项个数,不包括数据分隔符。若没有读数据项,则返回0。若文件结束或调用失败,则返回EOF。格式化读写函数fwrite(p,size,n,fp);p:某类型指针;size:某类型数据存储空间的字节数;n:此次写入文件的数据项数;fp:文件指针变量。数据块读写函数运用数据块输入输出函数可建立整型、实型、结构体类型等各种类型的二进制文件。函数功能:将p指向的存储区中n个数据项写
8、入fp所指向的文件。若输出操作成功,返回写入的数据项数;若输出操作失败,则返回0。数据块读写函数fread(p,size,n,fp);p:某类型指针;size:某类型数据存储空间的字节数;n:此次从文件中读取的数据项数;fp:文件指针变量。函数功能:从fp所指向的文件中,读取