C++程序设计:第16章 链表概念_第1页
C++程序设计:第16章 链表概念_第2页
C++程序设计:第16章 链表概念_第3页
C++程序设计:第16章 链表概念_第4页
C++程序设计:第16章 链表概念_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、请将您的手机铃声请将您的手机铃声设置为振动设置为振动信息学院计算中心第2页v链表概念链表概念v链表定义链表定义v创建链表创建链表v删除结点删除结点v插入结点插入结点复习回顾复习回顾信息学院计算中心第3页链表:链表:把存放在不同地点的数据用地址链条把存放在不同地点的数据用地址链条 串接而形成的数据链串接而形成的数据链head200015201021200223200854NULL2000201020022008结点:结点:构成链表的元素构成链表的元素头结点头结点末结点末结点头指针头指针数据域数据域指针域指针域链表概念链表概念信息学院计算中心第4页free函数函数函数原型:函数原型:void fr

2、ee(void *p) 动态存储分配函数动态存储分配函数calloc函数函数函数原型:函数原型:void *calloc(unsigned n, unsigned size) malloc函数函数函数原型:函数原型:void *malloc(unsigned size) 信息学院计算中心第5页文文 件件v文件概述文件概述v文件类型指针文件类型指针v文件的打开与关闭文件的打开与关闭v文件的读写文件的读写v标准标准I/O信息学院计算中心第6页文件概述文件概述 文件:文件:指存储在外部介质上数据的集合指存储在外部介质上数据的集合程序与数据分离程序与数据分离长期保存数据长期保存数据数据共享数据共享用处

3、:用处:信息学院计算中心第7页ASCI I文件:文件:每个字节存放一个字符的每个字节存放一个字符的ASCII码码二进制文件:二进制文件:数据按其在内存中的存储形式原样存放数据按其在内存中的存储形式原样存放文件分类文件分类按数据的组织形式按数据的组织形式信息学院计算中心第8页例例 用两种文件存放整用两种文件存放整型数型数100000000011 1110100000110001 00110000 00110000 00110000ASCII码形式码形式二进制形式二进制形式特点特点: :占空间多、速度慢、便于对字符操作占空间多、速度慢、便于对字符操作特点特点: :占空间少、速度快、便于存放中间结果

4、占空间少、速度快、便于存放中间结果信息学院计算中心第9页 处理处理 文件处理文件处理缓冲文件系统(高级文件系统)缓冲文件系统(高级文件系统)非缓冲文件系统(低级文件系统)非缓冲文件系统(低级文件系统)根据对文件根据对文件操作步骤:操作步骤: 关闭关闭 打开打开 根据对文件根据对文件操作方式:操作方式:信息学院计算中心第10页文件指针文件指针文件结构体文件结构体FILEtypedef struct short level ; /* 缓冲区满或空标志缓冲区满或空标志 */ unsigned mode ; /* 使用状态标志使用状态标志 */ int fd ; /* 文件号文件号 */ short

5、buffsize ; /* 缓冲区大小缓冲区大小 */ char *buff ; /* 缓冲区位置缓冲区位置 */ char *curp ; /* 文件指针当前的指向文件指针当前的指向*/ FILE ; FILE类型类型在头文件在头文件stdio.h中定义中定义信息学院计算中心第11页定义:定义: FILE *变量名;变量名;文件打开时文件打开时 系统系统自动自动建立文件结构体,并把建立文件结构体,并把指向它的指向它的指针指针返回,程序通过这个指针获得返回,程序通过这个指针获得文件信息文件信息,访问文件访问文件文件关闭后文件关闭后文件结构体被文件结构体被释放释放文件指针文件指针例子:例子: F

6、ILE *fp;信息学院计算中心第12页文件的打开文件的打开打开文件打开文件FILE *fopen(char *name, char *mode)要打开的文件名要打开的文件名使用文件方式使用文件方式信息学院计算中心第13页文件的打开文件的打开打开文件打开文件FILE *fopen(char *name, char *mode)功能:功能:按指定方式打开文件按指定方式打开文件返值:返值:正常打开正常打开指向文件结构体的指针指向文件结构体的指针打开失败打开失败返回返回NULL信息学院计算中心第14页使用方式使用方式含含 义义w/wbr/rb文件只允许读,不允许写文件只允许读,不允许写文件既允许读也

7、允许写文件既允许读也允许写 既可读也可写,但必须先写后读既可读也可写,但必须先写后读 文件允许读也允许在尾部写文件允许读也允许在尾部写 只允许在文件尾部写只允许在文件尾部写 文件使用方式表文件使用方式表文件只允许写,不允许读文件只允许写,不允许读a/abr+/rb+w+/wb+a+/ab+课本课本P188页页信息学院计算中心第15页例例 FILE *fp,*fq; fp= fopen (c:test.dat, r); fq= fopen (test.dat, r); 文件的打开文件的打开信息学院计算中心第16页原型:原型:int fclose(FILE *fp)功能:功能:关闭关闭fp指向的文

8、件指向的文件返值:返值:正常关闭正常关闭为为0;出错时出错时,非非0注意:注意:文件用完一定关闭,否则文件用完一定关闭,否则数据丢失数据丢失 影响其他文件的打开影响其他文件的打开 文件的关闭文件的关闭信息学院计算中心第17页 #include stdio.h #include stdlib.h main( ) FILE *fp; fp=fopen(aa.c, r); if(fp=NULL) printf(File open error!n); exit(0); else printf(File open right!n); fclose(fp); 例例 文件打开与测试文件打开与测试 信息学院计

9、算中心第18页fgetc函数函数形式形式: ch=fgetc(fp);功能:功能:从从fp所指文件中读一字符给变量所指文件中读一字符给变量ch范围:范围:ASCII文件文件文件的读写文件的读写fputc函数函数形式形式:fputc(c,fp); 功能:功能:将一个字符写入指针将一个字符写入指针fp所指文件中所指文件中 范围:范围:ASCII文件文件符号常量符号常量EOF在在stdio.h头文件中被定义为头文件中被定义为-1 课本课本P34页页信息学院计算中心第19页fgets函数函数文件的读写文件的读写形式形式:fgets(str,n,fp);功能功能:从从fp所指文件中读所指文件中读n-1个

10、字符给数个字符给数 组组str,并在数组第并在数组第n个字节存入个字节存入0范围范围:ASCII文件文件fputs函数函数形式形式: fputs(str,fp);功能:功能:把字符串把字符串str所标识所标识的字符串的字符串(不包不包 括结束符括结束符0)写入由指针写入由指针fp指向的指向的 文件中去文件中去 范围:范围:ASCII文件文件课本课本P77页页信息学院计算中心第20页#include #include void main( ) FILE *fp; char ch,*filename=out.txt; if(fp=fopen(filename,r)=NULL) printf(can

11、not open filen); exit(0); while(ch=fgetc(fp)!=EOF) putchar(ch); fclose(fp);例例 读文本文件内容并显示读文本文件内容并显示信息学院计算中心第21页#include#include main() FILE *fp; char string81=abcde; if(fp=fopen(d:aa.txt,w)=NULL) printf(cannt open file); exit(0); fputs(string, fp); fclose(fp);例例 为文本文件写入内容为文本文件写入内容信息学院计算中心第22页fwrite函数函数文件的读写文件的读写fread函数函数fscanf函数函数fprintf函数函数格式读写函数格式读写函数P P194二进制文件读二进制文件读写函数写函数P P192信息学院计算中心第23页#include #include main() char s80,c80; int a,b; FILE *fp; if(fp=fopen(test,w)=NULL) puts(cant open file); exit(0) ; fscanf(stdin,%s%d,s,&a); fprintf(fp,%s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论