第十三章 文件.

Slides:



Advertisements
Similar presentations
Chap 12 文件 12.1 学生成绩文件统计 12.2 用户信息加密和校验 12.3 文件综合应用:资金账户管理.
Advertisements

Chap 12 文件 12.1 将短句“Hello World”写入到文件 12.2 读取学生成绩文件 12.3 文件复制
第九讲 结构体与文件 陆 铭
C 语言程序设计 文件 周闻钧 朱宏明.
第 5 章 文件I/O操作.
C程序设计 第10章 文 件 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
第十三章 文件.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第12章 文 件 §12.1 概述 1.文件信息的集合,如一段程序、一段数据、一副图等
複習 struct score_Type{ int chinese,english; }; struct my_Type{
C File System.
第8章 文件 P 了解文件的处理过程 8.2 掌握文件的基本操作本领 8.3 文件的应用举例 *贯穿教学全过程的实例.
计算概论 第二十一讲 文件操作 北京大学信息学院.
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
第十一章 文件操作 文件的概念 文件的读写 主讲:李祥 时间:2015年10月.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
程序讲解 第一题: 将指定文件的m行到n行字符写到显示屏上,m和n值从键盘输入。 运行时输入及结果: please enter m,n:
第10章 文件.
第10章 文件操作.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
走进编程 程序的顺序结构(二).
函数申明、定义、调用 申明: void sort(float a[], int n); void sort(float *a, int m); void sort(float *a, int); void sort(float *, int);
第十二章 文件 12.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
第4章 MATLAB文件操作 4.1 文件的打开与关闭 4.2 文件的读写操作 4.3 数据文件定位.
文件读写实践 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
程式設計 博碩文化出版發行.
第九章 文件 程序数据标准输入输出设备 程序数据文件 数据流和文件 文件的打开和关闭 文件读写函数.
File(檔案處理) 學習目標:開檔、讀檔、更新檔與關閉檔案.
THE C PROGRAMMING LANGUAGE
第10章 文件操作.
第十章 文件操作.
第10章 对文件的输入输出 10.1 C文件的有关基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
第十三章 文件 目录 学生信息管理系统的完善 文件的概念 文件类型指针 文件的打开与关闭 文件的顺序读写
第9章 文件 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
研讨课4 文件操作.
目录 11.1 文件的种类 11.2 文件指针和文件内部的位置指针 11.3 文件的操作 11.4 文件的打开与关闭
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
第9章 文件 学习目的与要求: 熟练掌握文件指针的使用 掌握与文件相关的函数 能够利用文件相关函数实现各种操作.
C语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
C程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
姚金宇 MIT SCHEME 使用说明 姚金宇
C標準輸出入函數庫 與 作業系統.
Select模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
函数申明、定义、调用 申明: void sort(float a[], int n); void sort(float *a, int m); void sort(float *a, int); void sort(float *, int);
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
第13章 文 件.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
_08文件操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
結構、檔案處理(Structure, File)
第13章 文 件 六、字符和字符串读写函数 七、无格式转换的读写函数fread和fwrite 八、文件的定位 九、一个简单的读写存盘程序步骤.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab2.
Presentation transcript:

第十三章 文件

文件的基本概念 文件的基本函数 文件的顺序读写 文件的随机读写 文件简单应用 本章要点 文件的基本概念 文件的基本函数 文件的顺序读写 文件的随机读写 文件简单应用

主要内容 13.1 C文件概述 13.2 文件类型指针 13.3 文件的打开与关闭 13.4 文件的读写 13.5 文件的定位 13.6 出错的检测 13.7 文件输入输出小结

§13.1 C文件概述 文件的定义 所谓文件一般指存储在外部介质(如磁盘磁带)上 数据的集合. 操作系统是以文件为单位对数据进行管理的. 程序 数据区 输出文件缓冲区 输入文件缓冲区

§13.1 C文件概述(续) 文件的分类 从用户观点: 特殊文件(标准输入输出文件或标准设备文件) 普通文件(磁盘文件) 从操作系统的角度看,每一个与主机相连的输入 输出设备看作是一个文件。 例:输入文件:终端键盘 输出文件:显示屏和打印机

§13.1 C文件概述(续) 文件的分类 按数据的组织形式: ASCII文件(文本文件):每一个字节放一个ASCII代码 二进制文件:把内存中的数据按其在内存中的存储形 式原样输出到磁盘上存放. 例:整数10000在内存中的存储形式以及分别按ASCII 码形式和二进制形式输出如下图所示:

§13.1 C文件概述(续) 文件的分类 ASCII文件和二进制文件的比较: ASCII文件便于对字符进行逐个处理,也便于输出 字符。但一般占存储空间较多,而且要花费转换时 间。 二进制文件可以节省外存空间和转换时间,但一个 字节并不对应一个字符,不能直接输出字符形式。 一般中间结果数据需要暂时保存在外存上,以后又 需要输入内存的,常用二进制文件保存。

§13.1 C文件概述(续) 文件的分类 C语言对文件的处理方法: 缓冲文件系统:系统自动地在内存区为每一个正 在使用的文件开辟一个缓冲区。用缓冲文件系统 进行的输入输出又称为高级磁盘输入输出。 非缓冲文件系统:系统不自动开辟确定大小的缓 冲区,而由程序为每个文件设定缓冲区。用非缓 冲文件系统进行的输入输出又称为低级输入输出 系统。

§13.1 C文件概述(续) 说明: 在UNIX系统下,用缓冲文件系统来处理文本文件, 用非缓冲文件系统来处理二进制文件. ANSI C 标准只采用缓冲文件系统来处理文本文 件和二进制文件. C语言中对文件的读写都是用库函数来实现.

§13.2 文件类型指针 Turbo C在stdio.h文件中有以下的文件类型声明: typedef struct { shortlevel; /*缓冲区“满”或“空”的程度*/ unsignedflags; /*文件状态标志*/ charfd; /*文件描述符*/ unsignedcharhold; /*如无缓冲区不读取字符*/ shortbsize; /*缓冲区的大小*/ unsignedchar*buffer;/*数据缓冲区的位置*/ unsignedar*curp;/*指针,当前的指向*/ unsignedistemp;/*临时文件,指示器*/ shorttoken;/*用于有效性检查*/}FILE; 在缓冲文件系统中,每个被使用的文件都要在内存中开辟一 FILE类型的区,存放文件的有关信息.

§13.2 文件类型指针(续) FILE类型的数组: 文件型指针变量: FILE f[5];定义了一个结构体数组f,它有5个元素, 可以用来存放5个文件的信息。 文件型指针变量: FILE *fp;fp是一个指向FILE类型结构体的 指针变量。可以使fp指向某一个文件的结构体变量,从 而通过该结构体变量中的文件信息能够访问该文件。如果 有n个文件,一般应设n个指针变量,使它们分别指向n 个文件,以实现对文件的访问。

§13.3 文件的打开与关闭 一.文件的打开(fopen函数) 函数调用: FILE *fp; fp=fopen(文件名,使用文件方式); ①需要打开的文件名,也就是准备访问的文件的名字; ②使用文件的方式(“读”还是“写”等); ③让哪一个指针变量指向被打开的文件。

§13.3 文件的打开与关闭(续) 文件使用方式 含 义 “r” (只读)为输入打开一个文本文件 “w” (只写)为输出打开一个文本文件 文件使用方式     含   义 “r” (只读)为输入打开一个文本文件 “w” (只写)为输出打开一个文本文件 “a” (追加)向文本文件尾增加数据 “rb” (只读)为输入打开一个二进制文件 “wb” (只写)为输出打开一个二进制文件 "ab“ (追加)向二进制文件尾增加数据 "r+“ (读写)为读/写打开一个文本文件 "w+” (读写)为读/写建立一个新的文本文件 "a+” (读写)为读/写打开一个文本文件 "rb+“ (读写)为读/写打开一个二进制文件 “wb+“ (读写)为读/写建立一个新的二进制文件 “ab+” (读写)为读/写打开一个二进制文件

§13.3 文件的打开与关闭(续) 二.文件的关闭(fclose函数) 函数调用: fclose(文件指针); 函数功能: 使文件指针变量不指向该文件,也就是文件指针变 量与文件“脱钩”,此后不能再通过该指针对原来与 其相联系的文件进行读写操作 返回值: 关闭成功返回值为0;否则返回EOF(-1)

§13.4 文件的读写 一.字符输入输出函数(fputs()和fgets()) fputs函数 函数调用: fputs ( ch,fp ) ; 函数功能: 将字符(ch的值)输出到fp所指向的文件中去。 返回值: 如果输出成功,则返回值就是输出的字符; 如果输出失败,则返回一个EOF.

§13.4 文件的读写(续) fgets函数 函数调用: ch=fgets(fp); 函数功能: 从指定的文件读入一个字符,该文件必须是以读或 读写方式打开的。 返回值: 读取成功一个字符,赋给ch。 如果遇到文件结束符,返回一个文件结束标志 EOF 。

§13.4 文件的读写(续) 常见的读取字符操作 从一个文本文件顺序读入字符并在屏幕上显示出来: ch = fgetc(fp); while(ch!=EOF)   {   putchar(ch);   } 注意:EOF不是可输出字符,因此不能在屏幕上显示。 由于字符的ASCII码不可能出现-1,因此EOF定义为 -1是合适的。当读入的字符值等于-1时,表示读入 的已不是正常的字符而是文件结束符。

§13.4 文件的读写(续) 常见的读取字符操作 从一个二进制文件顺序读入字符: while(!feof(fp)) {   { ch = fgetc(fp);   } 注意:ANSI C提供一个feof()函数来判断文件是否 真的结束。如果是文件结束,函数feof(fp)的值为1 (真);否则为0(假)。以上也适用于文本文件的读取。

§13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.1从键盘输入一些字符,逐个把它们送到 #include <stdlib.h> #include <stdio.h> void main(void) { FILE *fp; char ch,filename[10]; scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("cannot open file\n"); exit(0); /*终止程序*/} ch=getchar( ); /*接收执行scanf语句时最后输入的回车符 */ ch=getchar( ); /* 接收输入的第一个字符 */ while(ch!='#'{ fputc(ch,fp);putchar(ch); ch=getchar(); } fclose(fp); } §13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.1从键盘输入一些字符,逐个把它们送到 磁盘上去,直到输入一个“#”为止。 运行情况如下: file1.c (输入磁盘文件名) computer and c#(输入一个字符串) computer and c (输出一个字符串)

§13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.2将一个磁盘文件中的信息复制到另一个磁 盘文件中 。 #include <stdlib.h> #include <stdio.h> main( ) {FILE *in,*out; char ch,infile[10],outfile[10]; printf("Enter the infile name:\n"); scanf("%s",infile); printf("Enter the outfile name:\n"); scanf("%s",outfile); if((in=fopen(infile,"r"))==NULL) { printf("cannot open infile\n"); exit(0);} if((out=fopen(outfile,"w"))==NULL) { printf("cannot open outfile\n"); while(!feof(in))fputc(fgetc(in),out); fclose(in); fclose(out);} §13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.2将一个磁盘文件中的信息复制到另一个磁 盘文件中 。 运行情况如下: Enter the infile name file1.c(输入原有磁盘文件名 Enter the outfile name: file2.c (输入新复制的磁盘文件名)  程序运行结果是将file1.c文件中的内容复制到 file2.c中去。

§13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.2的改进:复制一个二进制文件,利用main #include <stdlib.h> #include <stdio.h> main(int argc,char *argv[ ]) {FILE *in,*out; char ch; if (argc!=3) { printf("You forgot to enter a filename\n"); exit(0); } if((in=fopen(argv[1],"rb"))==NULL) { printf("cannot open infile\n"); exit(0);} if((out=fopen(argv[2],"wb"))==NULL) { printf("cannot open outfile\n"); while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out);} §13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.2的改进:复制一个二进制文件,利用main 参数,在输入命令行是将两个文件名输入。 运行方法: 设经编译连接后得到的可执行文件名为a.exe,则在DOS命令工 作方式下,可以输入以下的命令行: C>a file1.c file2.c file1.c和file2.c,分别输入到argv[1] 和argv[2]中,argv[0]的内容为a,argc的 值等于3 。

§13.4 文件的读写(续) 二.数据块读写函数(fread()和fwrite()) 函数调用: fread (buffer,size,count,fp); fwrite(buffer,size,count,fp); 参数说明: buffer:是一个指针。 对fread 来说,它是读入数据的存放地址。 对fwrite来说,是要输出数据的地址(均指起始地址)。 size: 要读写的字节数。 count: 要进行读写多少个size字节的数据项。 fp: 文件型指针。

§13.4 文件的读写(续) 使用举例: 若文件以二进制形式打开: fread(f,4,2,fp);

§13.4 文件的读写(续) 使用举例: 若有如下结构类型: struct student_type {char name[10]; int num; int age; char addr[30];}stud[40]; 可以用fread和fwrite来进行数据的操作: for(i=0;i<40;i++) fread(&stud[i],sizeof(struct student-type),1,fp);  for(i=0;i<40,i++) fwrite(&stud[i],sizeof(struct student-type),1,fp); 

§13.4 文件的读写(续) 使用举例: 例13.3从键盘输入4个学生的有关数据,然后把它们转存 到磁盘文件上去。 #include <stdio.h> #define SIZE 4 struct student_type { char name[10]; int num; int age; char addr[15]; }stud[SIZE]; /*定义结构*/

§13.4 文件的读写(续) void save( ) {FILE *fp; int i; if((fp=fopen("stu-list","wb"))==NULL) { printf("cannot open file\n"); return;} for(i=0;i<SIZE;i++)/*二进制写*/ if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1) printf(“file write error\n”);/*出错处理*/ fclose(fp); } /*关闭文件*/ main() {int i; for(i=0;i<SIZE;i++)/*从键盘读入学生信息*/ scanf("%s%d%d%s",stud[i].name,&stud[i].num, &stud[i].age,stud[i].addr); save( );}/*调用save()保存学生信息*/ 运行情况如下: 输入4个学生的姓名、学号、年龄和地址: Zhang 1001 19 room-101 Fun 1002 20 room-102 Tan 1003 21 room-103 Ling 1004 21 room-104 

§13.4 文件的读写(续) #include <stdio.h> #define SIZE 4 struct student_type { char name[10]; int num; int age; char addr[15]; }stud[SIZE]; main( ) { int i; FILE*fp; fp=fopen("stu-list","rb"); for(i=0;i<SIZE;i++) {fread(&stud[i],sizeof(struct student_type),1,fp); printf("%\-10s %4d %4d %\-15s\n",stud[i].name, stud[i].num,stud[i]. age,stud[i].addr); } fclose (fp);} §13.4 文件的读写(续) 验证在磁盘文件“stu-list”中是否已存在此数据, 用以下程序从“stu-list”文件中读入数据,然后在 屏幕上输出。 屏幕上显示出以下信息: Zhang 1001 19 room-101 Fun 1002 20 room-102 Tan 1003 21 room-103 Ling 1004 21 room-104 

§13.4 文件的读写(续) 如果已有的数据已经以二进制形式存储在一个磁盘文件 “stu-dat”中,要求从其中读入数据并输出到 “stu-list”文件中,可以编写一个load函数, 从磁盘文件中读二进制数据。 void load( ) {FILE *fp;int i; if((fp=fopen("stu-dat","rb"))==NULL) { printf("cannot open infile\n"); return;} for(i=0;i<SIZE;i++) if(fread(&stud[i],sizeof(struct student_type),1,fp)!=1) {if(feof(fp)) {fclose(fp); return;} printf("file read error\n");} fclose (fp); }

§13.4 文件的读写(续) 三.格式化读写函数(fprintf()和fscanf()) 函数调用: 函数功能: 例: 从磁盘文件中读入或输出字符。 例: fprintf(fp,”%d,%6.2f”,i,t); Fscanf (fp,”%d,%f”,&i,&t); 注意: 用fprintf和fscanf函数对磁盘文件读写,使用方便,容易理解, 但由于在输入时要将ASCII码转换为二进制形式,在输出时又要 将二进制形式转换成字符,花费时间比较多。因此,在内存与磁 盘频繁交换数据的情况下,最好不用fprintf和fscanf函数,而 用fread和fwrite函数。

§13.4 文件的读写(续) 三.其他读写函数 putw()和getw() 函数调用: 函数功能: 例: putw(int i,FILE * fp); int i = getw(FILE * fp); 函数功能: 对磁盘文件中读写一个字(整数)。 例: putw(10,fp); i = getw(fp); gutw函数定义如下: gutw(FILE *fp) { char s; s=char *&i; s[0] = getc(fp); s[1] = getc(fp); return i; } putw函数定义如下: putw(int I,FILE *fp) { char s; s=&I; putc(s[0],fp); putc(s[1],fp); return i; }

§13.4 文件的读写(续) 用户自定义读取其他类型数据的函数 向磁盘文件写一个实数(用二进制方式)的函数putfloat : putfloat(float num,FILE *fp) { char s; int count; s = (char*)&num; for(count = 0;count < 4;count++) putc(s[count],fp); }

§13.4 文件的读写(续) fgets函数 函数作用: 从指定文件读入一个字符串。 函数调用: fgets(str,n,fp); 从fp指向的文件输入n-1个字符,在最后加一个’\0’ 返回值: str的首地址

§13.4 文件的读写(续) fputs函数 函数作用: 向指定的文件输出一个字符串。 函数调用: fgets(“china”,fp); 第一个参数可以是字符串常量、字符数组名或字符型 指针。字符串末尾的′\0′不输出。 返回值: 输入成功,返回值为0; 输入失败,返回EOF.

§13.5 文件的定位 #include<stdio.h> rewind函数 main() 函数作用: { FILE *fp1,*fp2; fp1=fopen("file1.c","r"); fp2=fopen("file2.c","w"); while(!feof(fp1)) putchar(getc(fp1)); rewind(fp1); while(!feof(fp1)) putc(getc(fp1),fp2); fclose(fp1);fclose(fp2); } rewind函数 函数作用: 使位置指针重新返回文件的开头,无返回值。 应用举例: 例13.4有一个磁盘文件,第一次将它的内容显示在屏幕 上,第二次把它复制到另一文件上。

§13.5 文件的定位 顺序读写和随机读写 顺序读写: 位置指针按字节位置顺序移动。 随机读写: 读写完上一个字符(字节)后,并不一定要读写其 后续的字符(字节),而可以读些文件中任意位置 上所需要的字符(字节)。

§13.5 文件的定位 fseek函数(一般用于二进制文件) 函数功能: 改变文件的位置指针 函数调用形式: 起始点:文件开头 SEEK_SET 0 文件当前位置 SEEK_CUR 1 文件末尾 SEEK_END 2 位移量:以起始点为基点,向前移动的字节数。一般 要求为long型

§13.5 文件的定位 fseek函数应用举例 fseek(fp,100L,0); 将位置指针移到离文件头100个字节处 将位置指针移到离当前位置50个字节处 fseek(fp,50L, 2); 将位置指针从文件末尾处向后退10个字节

§13.5 文件的定位 例13.5在磁盘文件上存有10个学生的数据。要求 将第1、3、5、7、9个学生数据输入计算机,并 在屏幕上显示出来。 #include <stdlib.h> #include<stdio.h> struct student_type { char name[10]; int num; int age; char sex; }stud[10]; main() { int i; FILE *fp; if((fp=fopen("stud-dat","rb"))==NULL) {printf("can not open file\n"); exit(0);} for(i=0;i<10;i+=2) {fseek(fp,i*sizeof(struct student_type),0); fread(&stud[i], sizeof(struct student_type),1,fp); printf(“%s %d %d %c\n”,stud[i].name, stud[i].num,stud[i].age,stud[i].sex);} fclose(fp)} §13.5 文件的定位 例13.5在磁盘文件上存有10个学生的数据。要求 将第1、3、5、7、9个学生数据输入计算机,并 在屏幕上显示出来。

§13.5 文件的定位 ftell函数 函数作用: 得到流式文件中的当前位置,用相对于文件开头的位 移量来表示。 返回值: 应用举例: i = ftell(fp); if(i==-1L) printf(“error\n”);

§13.6 出错的检测 ferror函数 调用形式: ferror(fp); 返回值: 返回0,表示未出错;返回非0,表示出错。 否则信息会丢失。在执行fopen函数时,ferror函数 的初始值自动置为0。

§13.6 出错的检测 clearerr函数 调用形式: clearerr(fp); 函数作用: 使文件错误标志和文件结束标志置为0。 只要出现错误标志,就一直保留,直到对同一文件 调用clearerr函数或rewind函数,或任何其他一个输 入输出函数。

§13.7 文件输入输出小结 分类 函数名 功能 打开文件 fopen() 打开文件 关闭文件 fclose() 关闭文件 分类 函数名 功能 打开文件 fopen() 打开文件 关闭文件 fclose() 关闭文件 文件定位 fseek() 改变文件位置指针的位置 Rewind() 使文件位置指针重新至于文件开头 Ftell() 返回文件位置指针的当前值 文件状态 feof() 若到文件末尾,函数值为真 Ferror() 若对文件操作出错,函数值为真 Clearerr() 使ferror和feof()函数值置零

§13.7 文件输入输出小结 分类 函数名 功能 文件读写 fgetc(),getc()从指定文件取得一个字符 分类 函数名 功能 文件读写 fgetc(),getc()从指定文件取得一个字符 fputc(),putc()把字符输出到指定文件 fgets()从指定文件读取字符串 fputs()把字符串输出到指定文件 getw()从指定文件读取一个字(int型) putw()把一个字输出到指定文件 fread()从指定文件中读取数据项 fwrite()把数据项写到指定文件中 fscanf()从指定文件按格式输入数据 fprintf()按指定格式将数据写到指定文件中