第十章_文件操作.ppt
文本预览下载声明
§10.1 计算机中的流(Stream) 计算机中的流的概念 一般称为数据流,也有叫做字节流、比特流的,还有很具体的文件流、视频流、音频流等 时光不能倒流,但计算机中的很多流都是会倒流的 如果你想重新读已经读过的数据,或者要修改已经写入的数据,可以发出流控(Flow Control)命令 不会倒流的数据流也很多,例如网络上的数据流。网络和数据线等介质只有很小的数据缓冲区,没有大量存储的能力 §10.2 文件(File)的概念 计算机的内存容易健忘,所以数据必须保存在硬盘、软盘、光盘和磁带等“不健忘”的外存上 这些能大量、永久保存信息的媒介,一般都以文件的形式给用户及应用程序使用 文件 一般指存储在外部介质上具有名字(文件名)的一组相关数据的集合 用文件可长期保存数据,并实现数据共享 程序中的文件 在程序运行时由程序在磁盘上建立一个文件,并通过写操作将数据存入该文件;或由程序打开磁盘上的某个已有文件,并通过读操作将文件中的数据读入内存供程序使用 文件的存放 文件的格式 二进制文件 是一种字节序列,没有字符变换 按照数据在内存中的存储形式存储到文件 如整数127,在内存占2个字节,为0000000001111111,则文件中也存储为0000000001111111,占2个字节 文本文件/ASCII码文件 是一种字符序列 文件中存储每个字符的ASCII码 如整数127在文件中占3个字节,分别存放这3个字符的ASCII码,即49,50,55 §10.3 C语言独特的文件访问 下面介绍的函数均定义在stdio.h中 FILE *fopen(const char *filename, const char *mode); FILE *fp = fopen(C:\\CONFIG.SYS, rw); filename是文件名,包含路径。如果不含路径,表示打开当前目录下的文件 mode是打开方式,常用为r、w、rw和a,分别表示只读、只写、读写和添加 返回值为指向此文件的指针,留待以后使用。如果打开失败,返回值为NULL ---把字符ch写到fp所指向的文件中去。 * * * * 计算机中的流 文件 C语言独特的文件访问 基本文件操作 第10章 文件操作 可以建立若干目录(文件夹),在目录里保存文件,同一级目录里保存的文件不能同名。 对使用者而言,只要知道文件的路径(全目录)和文件名,就能使用该文件 C:\home\Sunner\main.c 这都是托OS的福 一、文件的打开方式 mode: 对应二进制文件 对应文本文件 “r” 只读 必须是已存在的文件。 “w” 只写 不论该文件是否存在,都新建一个文件。 “a” 追加 向文本文件尾增加数据,该文件必须存在“r+” 读写 打开一个已存在的文件,用于读写。 “w+” 读写 建立一个新文件,可读可写。 “a+” 读写 向文件尾追加数据,也可读。 “rb” “wb” “ab” “rb+” “wb+” “ab+” 常用打开文件的方法为: 例如: FILE *fp ; if((fp=fopen(“a1.txt”,”r”))==NULL) { printf(“cannot open this file\n”); exit(0); } fopen函数返回指向文件a1.txt的指针并赋给fp, 即fp指向文件a1.txt. 若不能实现打开任务,fopen函数将带回一个空指针值NULL(值为0)。 文件的关闭:fclose函数 例如: fclose(fp); fclose(文件指针); 关闭fp所指向的文件。把遗留在缓冲区中的数据写入文件,实施操作系统级的关闭操作。同时,释放缓冲区,以后可以再次使用这部分空间。 fclose函数的返回值: 当顺利地执行了关闭操作,则返回值为0; 如果返回值为非零值,则表示关闭时有错误。一般只有驱动器中无盘或盘空间不够时,才失败。 关闭失败会引起数据丢失、破坏文件和程序中的随机错误 多数情况下,系统限制同时处于打开状态的文件总数,因此,打开文件前先关闭无用文件是必要的 int fgetc(FILE *fp); ch=fgetc (fp); fgetc和fputc函数 int fputc(int c, FILE *fp); fputc (ch,fp); ---从指定文件读入一个字符。 该文件应以只读或读写方式打开。 二、文件的字符读写 返回值:若输出成功,则返回输出的字符
显示全部