第12章 文 件

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 数据块读写函数
–数据块读函数
• 调用形式:fread(buffer,size,count,fp); • 功能:从fp指向的文件中读取count个size个字节大小的 数据块,存放到buffer指定的内存中。如果fread调用成 功,则函数返回值为count的值,否则若遇到文件结束 或出错则返回0。
12.3 文件的打开与关闭
• 文件的打开函数
– 调用形式: fopen("文件名" ,"文件使用方式"); 例:fp=fopen("f1","r"); 表示以r方式打开名字为f1的文件,且fp指向了文件f1。 – 文件的使用方式及含义: • "r":为读打开一个文本文件。 • "w" :为写打开一个文本文件。 • "a" :向文本文件尾增加数据。 • "r+"、"w+"、"a+":用此种方式打开文件既可用来输入 数据,也可用来输出数据。 • "rb"、"wb“、"ab":以读、写、追加的方式打开一个二 进制文件。 • "rb+","wb+","ab+":以读、写、追加的方式打开一个 二进制文件, 首页 上一页
第12章 文 件
12.1 C文件的基础知识 12.2 文件类型指针 12.3 文件的打开与关闭 12.4 文件的读写 12.5 文件的定位 12.6 检测函数 12.7 应用举例
http://www.taobaoboygirl.com
12.1 C文件的基础知识
• C文件的基本格式
C语言把文件看成字符的序列,根据数据的组织形式C文件又 可以分为ASCII文件(文本文件)和二进制文件: –ASCII文件:它的每一个字节存放一个ASCII码。 –二进制文件:它的数据形式和内存中数据形式一模一样。
/ * 缓冲区“满”或“空”的程度*/ /* 文件状态标志 */ /* 文件描述符 */ /* 如无缓冲区不读取字符 */ /* 缓冲区的大小 */ / * 数据缓冲区的位置 */ / * 指针,当前的指向 * / / * 临时文件,指示器 * / / * 用于有效性检查 * /
• 文件类型指针
FILE * fp; 首页 上一页
• 调用形式:fscanf(文件指针,格式字符串,输入表列); • 功能:按指定格式输出到文件指针所指向的文件上。
–格式化写函数
• 调用形式:fprintf(文件指针,格式字符串,输出表列); • 功能:按指定格式从文件指针所指向的文件读入数据。
• 字读写函数
– 字读函数
• 调用形式:getw(fp); • 功能:从fp指向的文件中读取一个字。
• rewind 函数
– 调用形式:rewind(fp); – 功能:使位置指针重新返回文件的开头。
• ftell函数
– 调用形式:ftell(fp); – 功能:返回流式文件中的当前位置。
首页 上一页
12.6 检测函数
• ferror 函数
– 调用形式: ferror(fp); – 功能:在调用各种输入输出函数时,如果出现错误,除了 函数返回值有所反映外,还可以用ferror函数检查。
• clearerr函数
– 调用形式:clearerr(fp) – 功能:使文件错误标志和文件结束标志置为0。
• feof函数
– 调用形式:feof(fp); – 功能:用来检查文件是否结束,如果文件结束则返回非0, 否则返回0。 首页 上一页
12.7 应用举例
例12.6 例12.7 例12.8
首页 上一页
• 缓冲文件和非缓冲文件系统
–缓冲文件系统:系统自动在内存开辟一个缓冲区,写文件 时先写入缓冲区,缓冲区满后再写到磁盘上去;读文件时 先将数据读到缓冲区,再从缓冲区将数据送到程序数据区。 –在非缓冲文件系统:文件的处理不自动开辟确定大小的缓 冲区,而是由程序设定缓冲区。 首页 上一页

C文件操作的一般方法
上一页
• 文件的关闭
– 调用形式: fclose(文件指针); 例:fclose(fp);表示关闭文件指针fp所指向的文件。 – fclose 函数的返回值:当顺利地执行了关闭操作,则返回 值为0;否则返回EOF(-1)。 – “关闭”就是使文件指针变量不指向该文件,也就是文件 指针变量与文件“脱钩”,此后不能再通过该指针对原来 与其相联系的文件进行读写操作,除非再次打开文件,并 使该指针变量重新指向该文件。
Biblioteka Baidu
在C语言中,对文件的操作都是通过标准函数来实现的,文 件的打开、读写、关闭等都是这样。 – 文件的基本操作包括: • 文件的打开 • 文件指针的定位 • 文件的读写 • 出错检测 • 文件关闭 – 对一个文件的操作过程 如右图示:
上一页
12.2 文件类型指针
• 文件类型
typedef struct {short lever; unsigned flags; char fd; unsigned char hold; short bsize; unsigned char * baffer; unsigned ar *curp; unsigned istemp; short token; }FILE;
– 说明:
• 如果不能实现“打开”的任务,fopen函数将会带回一个 出错信息。出错的原因可能是用“r”方式打开一个并不存 在的文件;磁盘出故障;磁盘已满无法建立新文件等。 • 用以上的方式可以打开文本文件或二进制文件 ,这是 ANSI C的规定,用同一种缓冲文件系统来处理文本文件和 二进制文件。 • 在向计算机输入文本文件时,将回车换行符转换为一个 换行符,在输出时把换行符转换成为回车和换行两个字符。 • 在程序开始运行时,系统自动打开3个标准文件:标准输 入、标准输出、标准出错输出。
上一页
12.4 文件的读写
• 字符读写函数
–字符写函数
• 调用形式: fputc(ch,fp); • 功能:将字符ch输出到fp 所指向的文件中去。其中ch可 是一个字符常量,也可是一个字符变量。fp是文件指针 变量,其所指向的文件应已以写或读写方式打开。
–字符读函数
• 调用形式:ch=fgetc(fp); • 功能:从指定的文件读入一个字符,该文件须是以读或 读写方式打开的。fp为文件型指针变量,ch为字符变量。 fgetc函数带回一个字符,赋给ch。若fgetc函数执行时遇 到文件结束符,则函数返回文件结束标志EOF(-1)。 例12.1 首页 上一页
–数据块写函数
• 调用形式:fwrite(buffer,size,count,fp); • 功能:将buffer指向的内存中的count*size个字节内容写 入到fp指定的文件中。函数返回值为count的值,即写入 到文件的数据项个数。 例12.2 例12.3 上一页

格式化读写函数
–格式化读函数
• 读写其他类型数据
用ANSI C 提供的fread和fwrite函数,读写任何类型数据都是 十分方便的。如果所用的系统不提供这两个函数,用户可以 自己定义所需函数。 例12.4 例12.5 上一页
12.5 文件的定位
• fseek函数
– 调用形式:fseek(fp,offset,origin); – 功能:移动文件位置指针到指定的位置。 • fp为FILE型指针; • offset为移动的位移量,是以字节为单位; • origin 表 示 基 准 点 :SEEK_SET(0) 代 表 “ 文 件 开 始 ” , SEEK_CUR(1)为“当前位置”,SEEK_END(2)为“文件末 尾”。
– 字写函数
• 调用形式:putw( i,fp); • 功能:将i的值输出到fp指向的文件中去。 上一页
• 字符串读写函数
– 字符串读函数
• 调用形式:fgets(str,n,fp); • 功能:从指定文件读入一个字符串,返回其首地址。
– 字符串写函数
• 调用形式:fputs(str,fp); • 功能:将字符串str写入到fp指向的文件中去。
相关文档
最新文档