课件c语言文件操作讲解(2)

上传人:bin****86 文档编号:56184344 上传时间:2018-10-10 格式:PPT 页数:31 大小:204KB
返回 下载 相关 举报
课件c语言文件操作讲解(2)_第1页
第1页 / 共31页
课件c语言文件操作讲解(2)_第2页
第2页 / 共31页
课件c语言文件操作讲解(2)_第3页
第3页 / 共31页
课件c语言文件操作讲解(2)_第4页
第4页 / 共31页
课件c语言文件操作讲解(2)_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《课件c语言文件操作讲解(2)》由会员分享,可在线阅读,更多相关《课件c语言文件操作讲解(2)(31页珍藏版)》请在金锄头文库上搜索。

1、第10章 文件操作,10.1 C文件的有关概念,1、什么是文件 文件是存放在外部存储器上的数据的集合。2、文件名 为了区分外存上不同的文件,对文件的存取操作是通过文件名来找到某文件。磁盘文件名一般表示为:文件路径文件名.扩展名,10.1 C文件的有关概念,3、文件的分类 按文件中数据格式分类二进制文件:数据按二进制方式存放。如整数123占2个字节文本文件:将数据转换成对应的ASCII代码存放。如123转换成三个字符,1,2,3占3个字节,10.1 C文件的有关概念,设备文件我们前面的输入输出是从键盘输入数据,把数据输出到显示器上,这里把键盘、显示器看作是文件,称为设备文件。,10.1 C文件的

2、有关概念,4、文件指针C 语言规定文件类型是一种特殊的“结构型”,其特殊性在于其成员系统已经在名为stdio.h 的库文件中定义(P286),该结构型名为FILE可以直接使用FILE定义文件类型的指针变量对文件进行访问,定义方法如下:FILE *文件型指针变量; 例:FILE *p, *q, *r;注意: FILE 必须大写。,10.1 C文件的有关概念,系统定义的FILE型的指针变量 stdin(标准输入文件指针):键盘stdout(标准输出文件指针):显示器stderr(标准错误文件指针):用来输出出错信息,10.2 文件的打开与关闭,10.2 文件的打开与关闭,文件的打开:指为文件建立信

3、息区(存放文件的信息)和文件缓冲区(存放输入输出的数据),并建立它们之间的联系。 文件的关闭:指撤销文件信息区和文件缓冲区。1、文件的打开(函数:fopen)首先定义文件指针: 如 FILE *fp;然后打开文件:fp=fopen(文件名,使用文件方式);它表示打开一指定文件,并使fp指向该数据文件; 文件名可以直接用带双引号的字符串常量,也可以用字符串变量。,10.2 文件的打开与关闭,使用文件方式有:,10.2 文件的打开与关闭,“r”、”w”、”a”、”r+”、”w+”、”a+”这六种方式是针对“文本文件”; “rb”、”wb”、”ab”、”rb+”、”wb+”、 ”ab+”这六种方式针

4、对“二进制文件”,作用与前六种相同;例: FILE *fp;fp= fopen(“C:a1.txt”, “r”);,10.2 文件的打开与关闭,说明: 如果打开文件出现错误,则fopen函数返回值为“NULL”,表示空,其值为0; 因此,常用以下方法打开一个文件if ( fp= fopen(“file1”, “r”) = NULL ) printf (“cannot open this filen”);exit(0); 其中,exit(0)为关闭所有文件,终止正在执行的程序;,10.2 文件的打开与关闭,2、文件的关闭( fclose) fclose函数使用的一般形式为:fclose(文件指针

5、)例: fclose (fp);当顺利执行了关闭操作则fclose返回值为0,否则为非0;,10.2 标准文件操作,3、标准设备文件的打开与关闭标准设备文件使用时不用fopen函数打开,也不必用fclose函数关闭:stdin 标准输入设备(键盘)stdout 标准输出设备(显示器)stderr 标准错误输出设备(显示器),10.2 标准文件操作,4、feof 函数例: feof (fp) 函数功能:测试fp指向的文件是否到达文件尾;返回值:该函数当fp指向文件尾时,返回值为非0,否则为0;该函数通常用来作为循环中的循环条件;,10.3 文件的顺序读写,顺序写:先写入的数据存放在文件中前面的位

6、置,后写入的数据存放在文件中后面的位置。 顺序读:先读文件中前面的数据,后读文件中后面的数据。 顺序读写:对文件中数据读写的顺序和数据在文件中存放的物理顺序一致。顺序读写用库函数实现。,10.3 文件的顺序读写,1、向文件读写一个字符 1)用 fputc函数向文件写入一个字符 fputc函数调用形式:fputc (ch, fp);其中ch为一个字符常量或为一个字符变量;fp是文件型指针变量;该函数功能:将ch中字符写到fp所指文件的当前位置; 函数的返回值:正确,则返回刚写入文件中的字符;错误,则返回EOF(符号常量,值为-1),10.3 文件的顺序读写,例:从键盘输入10个字符,写到c盘根目

7、录下名为“a.txt”文件中main() FILE *fp;int i;char ch;if (fp=fopen(“c:a.txt”, “w”)=NULL) printf (“file can not openn”);exit(0); for ( i=0; i10; i+) scanf(“%c”, ,10.3 文件的顺序读写,2)用 fgetc函数从文件读入一个字符 调用形式:fgetc (fp)该函数功能:从fp所指的文件的当前位置读取单个字符; 函数的返回值:正确,则返回读的字符;错误,则返回EOF(符号常量,值为-1),10.3 文件的顺序读写,例:从c盘根目录下名为“a.txt”文件中

8、读取字符并输出;main() FILE *fp;char ch;if (fp=fopen(“c:a.txt”, “r”)=NULL) printf (“file can not openn”);exit(0); while ( !feof (fp) ) ch= fgetc(fp);printf (“%c”, ch); 或 putchar(ch); 或 fputc(ch, stdout);fclose(fp);,10.3 文件的顺序读写,例:编一个函数完成文本文件的复制,源文件名和目标文件名作为函数参数;void copy (char *f1, char *f2) FILE *fp1, *fp2

9、;char ch;if (fp1=fopen(f1, “r”)=NULL) printf (“file can not openn”);exit(0); if (fp2=fopen(f2 , “w”)=NULL) printf (“file can not openn”);exit(0); while ( !feof(fp1) ) ch= fgetc (fp1);fputc (ch, fp2); fclose(fp1); fclose(fp2); ,10.3 文件的顺序读写,2、 向文件读写一个字符串 1)fputs 函数 调用形式:fputs (str, fp);其中,str是字符串常量,或

10、存放字符串的数组首地址,或指向字符串的指针变量函数功能:将str指向的字符串去掉0后写入fp所指文件中;,10.3 文件的顺序读写,2)fputs 函数 调用形式:fgets (str, n, fp);其中,str为字符数组或指向字符数组的指针变量; n为整型数据;函数功能:从fp所指文件读n-1个字符,然后在其后补充一个字符串结束标记0存入字符数组str中;如果在读完n-1个字符之前遇到回车换行符或EOF(文件尾),读入结束;,10.3 文件的顺序读写,3、文件的格式化读写 用fprintf函数和fscanf函数实现:fprintf, fscanf 与 printf, scanf 作用相似,

11、只是,fprintf, fscanf 的对象不是终端而是磁盘文件;1)fprintf 函数 调用形式:fprintf(文件指针,格式字符串,输出表列);例:fprintf (fp, “%d,%d”,x, y);该语句的作用是将x,y的值按%d,%d的格式输出到fp指向的文件上;,10.3 文件的顺序读写,2)fscanf 函数 调用形式:fscanf ( 文件指针,格式字符串,输入表列);例: fscanf (fp, “%d,%d”, 磁盘文件如有3,8 则将磁盘文件中的数据3送给变量x,8送给变量y,10.3 文件的顺序读写,4、向文件读写一组数据 fread 函数和 fwrite 函数 1

12、)fwrite 函数 调用形式:fwrite (buffer, size, count, fp)其中,buffer是一个指针,可以是存放数据的变量地址或数组首地址,也可以是指向某个变量或数组的指针变量; size 代表文件的每个数据所占用字节数; count代表写入文件的数据的个数; fp 是文件指针;函数功能: 将buffer指向的count个数据(每个数据的字节数为size)写入fp指向的文件; 返回值:正确,则返回count值;错误,返回NULL(0),10.3 文件的顺序读写,例: main() FILE *fp;int a6=10; 12, 13, 15, 16, 18;if (fp

13、=fopen(“c:a.txt”, “w”)=NULL) printf (“file can not openn”);exit(0); fwrite (a, sizeof(int), 6, fp);fclose (fp);,10.3 文件的顺序读写,2)fread 函数 调用形式:fread (buffer, size, count, fp)其中,buffer是一个指针,可以是存放数据的变量地址或数组首地址,也可以是指向某个变量或数组的指针变量; size 代表读取的每个数据所占用字节数; count代表读取数据的个数; fp 是文件指针;函数功能:从fp指向的文件读取count个数据(每个数

14、据的字节数为size) 存入buffer指定的内存区; 返回值:正确,则返回count值;错误,返回NULL(0),10.3 文件的顺序读写,例: main() FILE *fp;int a6,i;if (fp=fopen(“c:a.txt”, “r”)=NULL) printf (“file can not openn”);exit(0); fread (a, sizeof(int), 6, fp);for (i=0; i6; i+)printf(“%d”,ai); fclose (fp);,10.4 文件的随机读写,文件的随机读写:文件中有一个位置指针,指向当前读写的位置,如顺序读写一文件,每次读写一个字符,则读完一个字符后,该位置指针自动移动指向下一个字符位置;1)rewind函数该函数的作用是使位置指针重新返回文件的开头;2)fseek函数该函数的作用是改变文件的位置指针;该函数调用形式:fseek(文件类型指针,位移量,起始点) 起始点:0代表“文件开始”,1代表“当前位置”,2代表“文件末尾”; 例:fseek(fp, 100L, 0); 表示将位置指针移到离文件头100个字节处;,10.4 文件的随机读写,3)ftell 函数该函数的作用是得到文件指针相当与文件开头的位移量;(从而知道文件指针的当前位置),10.5 文件读写的出错检测,(略),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号