第十三章文件 C文件概述 ●文件类型指针 文件的打开和关闭 文件的读写 ●文件的定位 ●出错的检测 文件输入输出小结
第十三章 文件 ⚫ C文件概述 ⚫ 文件类型指针 ⚫ 文件的打开和关闭 ⚫ 文件的读写 ⚫ 文件的定位 ⚫ 出错的检测 ⚫ 文件输入输出小结
C文件概述 文件是存储在外部介质上的数据的集合 二进制文件和ASCⅡ码文件(文本文件) ●流式文件(以字节为单位存取,无间隔符 ●缓冲文件系统和非缓冲文件系统 ●C语言采用缓冲文件系统 ●C语言中对文件的操作是用库函数来实现的
C文件概述 ⚫ 文件是存储在外部介质上的数据的集合 ⚫ 二进制文件和ASCII码文件(文本文件) ⚫ 流式文件(以字节为单位存取,无间隔符) ⚫ 缓冲文件系统和非缓冲文件系统 ⚫ C语言采用缓冲文件系统 ⚫ C语言中对文件的操作是用库函数来实现的
文件类型指针 缓冲文件系统的关键概念是文件指针 ●每个被使用的文件都在内存中开辟一个 区域,用来存放文件的有关信息(名 状态、当前位置等),这些信息存放在 个结构体变量中 ●TC在 stdio. h文件中定义结构体类型FILE ●可使用FIE来定义变量、数组和指针, 用指针来实现对文件的访问
文件类型指针 ⚫ 缓冲文件系统的关键概念是文件指针 ⚫ 每个被使用的文件都在内存中开辟一个 区域,用来存放文件的有关信息(名字、 状态、当前位置等),这些信息存放在 一个结构体变量中 ⚫ TC在stdio.h文件中定义结构体类型FILE ⚫ 可使用FILE来定义变量、数组和指针, 用指针来实现对文件的访问
文件的打开和关闭 ●对文件进行读写之前,必须打开该文件 使用结束之后,要关闭该文件 ●打开文件的函数 fopen 调用方式:FIE*fp fp=fopen(文件名,使用文件方式) 使用文件方式:r,w,a,+,b 函数的返回值:正常打开则返回文件指针 出错则返回0(NULL
文件的打开和关闭 ⚫ 对文件进行读写之前,必须打开该文件, 使用结束之后,要关闭该文件 ⚫ 打开文件的函数fopen() 调用方式:FILE *fp; fp=fopen(文件名,使用文件方式); 使用文件方式:r,w,a,+,b 函数的返回值:正常打开则返回文件指针 出错则返回0(NULL)
文件的打开和关闭(续) ●关闭文件的函数 close( 调用形式: fclose(文件指针) 函数的返回值:正常关闭则返回0值 否则返回EOF ●几个有关的函数和符号常量 函数ex(0)关闭所有文件 符号常量NULL空值(0) 符号常量EOF文件结束符(-1) 函数eo(文件指针)判断文件结束否(非0结束
文件的打开和关闭(续) ⚫ 关闭文件的函数fclose() 调用形式:fclose(文件指针); 函数的返回值:正常关闭则返回0值 否则返回EOF ⚫ 几个有关的函数和符号常量 函数exit(0) 关闭所有文件 符号常量NULL 空值(0) 符号常量EOF 文件结束符(-1) 函数feof(文件指针)判断文件结束否(非0结束)
文件的读写 对磁盘读写一个字符的函数 对磁盘读写数据块的函数 ●对磁盘进行格式化读写的函数 ●对磁盘读写一个字(整数)的函数 ●对磁盘文件读写一个字符串的函数
文件的读写 ⚫ 对磁盘读写一个字符的函数 ⚫ 对磁盘读写数据块的函数 ⚫ 对磁盘进行格式化读写的函数 ⚫ 对磁盘读写一个字(整数)的函数 ⚫ 对磁盘文件读写一个字符串的函数
对磁盘读写一个字符的函数 将一个字符写到磁盘文件中 调用形式: fputc(ch,fp); 输出成功返回该字符,失败返回EOF 从指定文件读入一个字符 调用形式:ch=getc(fp); 输出成功返回得到的字符,失败返回EOF putc getc是系统定义的宏名
对磁盘读写一个字符的函数 • 将一个字符写到磁盘文件中 调用形式:fputc(ch,fp) ; 输出成功返回该字符,失败返回EOF • 从指定文件读入一个字符 调用形式:ch=fgetc(fp); 输出成功返回得到的字符,失败返回EOF • putc getc是系统定义的宏名
对磁盘读写数据块的函数 调用形式 fread(buffer, size, count, fp) fwrite(buffer, size, count, fp) ·参数说明:fp:文件型指针 count:读写多少个size字节 size:要读写的字节数 buffer:指针,读入(输出)数据的存放地址
对磁盘读写数据块的函数 • 调用形式 fread(buffer,size,count,fp); fwrite (buffer,size,count,fp); • 参数说明: fp:文件型指针 count:读写多少个size字节 size:要读写的字节数 buffer:指针,读入(输出)数据的存放地址
对磁盘进行格式化读写的函数 调用形式: fprintf(文件指针,格式字符串,输出表列); fscanf(文件指针,格式字符串,输出表列) 类似于 print;和 Scant,仅仅是读写的对象不 样
对磁盘进行格式化读写的函数 • 调用形式: fprintf(文件指针,格式字符串,输出表列); fscanf(文件指针,格式字符串,输出表列); • 类似于printf和scanf,仅仅是读写的对象不 一样
对磁盘读写一个字的函数 将一个整数写到印指向的文件中 调用形式:putw(整数,fp); 返回值为输出的整数,出错则返回EOF 从f所指向的文件读取下一个字 调用形式: I=get(fp); 返回值为输入的整数,出错则返回EOF
对磁盘读写一个字的函数 • 将一个整数写到fp指向的文件中 调用形式: putw(整数,fp); 返回值为输出的整数,出错则返回EOF • 从fp所指向的文件读取下一个字 调用形式: i=getw(fp); 返回值为输入的整数,出错则返回EOF