电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

2014c语言与程序设计第十一讲(文件)章

  • 资源ID:89082670       资源大小:3.27MB        全文页数:36页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

2014c语言与程序设计第十一讲(文件)章

C语言程序设计基础,2014.9,第十讲 指针与函数,指针实践 检索链表非循环链表 检索链表循环链表 拷贝单链表 链表倒序,本节要点-指针与引用 指针的复杂性 递归倒序中的指针 结构嵌套中的变量表达形式 引用的概念 形参是指针 形参是引用 引用的定义 程序设计中的引用风格 引用简化复杂变量的表达形式 递归倒序中的引用,看教材自学,链表操作搜索指定节点,a1 next,a2 next,if(p-key!=key)q=p;p=p-next;,p=head;,struct node *head,*q,*p;,head,a3 next,an,否则,while(p)继续搜索,q指向an,p=NULL;,while(p) if(p-key!=key)q=p;p=p-next; else return(p); ,搜索成功返回位置指针,else return(p);,p非空,递推搜索,=(struct node *)searches(head,key);,到达节点an之后,继续更新p,则p=NULL;,p为空则搜索失败,p,int searches(struct stu *head,char *key) if(!head)return(-1); while(head) if(strcmp(head-num,key)!=0)head = head -next; else return(head-score); return(-1); ,int类型函数,指向头结点的指针,学号检索码,表空,返回检索失败信息,当前节点非空,循环搜索,如学号如果不符,修改头指针指向下一个节点,学号相符,返回该节点成绩分量,走出循环体则该表非空,且无检索的学号,链表操作搜索指定学号节点信息,struct stu char ID40; int score; struct stu *next; ;,循环链表操作搜索指定节点,a1 next,a2 next,if(p-key!=key)q=p;p=p-next;,p=head;,struct node *head,*q,*p;,head,a3 next,an,否则,while(p-next!=head )继续搜索,循环表的an-next为head,搜索成功返回位置指针,else return(p);,p非空,递推搜索,=(struct node *)searches(head);,到达节点an之后,继续更新p,则p=head;,若p=head,则搜索失败,p,非循环链,循环链,函数copy将单链表A复制到单链表B,a1 next,a2 next,p=head;,struct node *head,*head2,*q,*p;,head,a3 next,an ,s next,head2,空指针,q=head2;,申请节点s,q-next=s;,使用了空指针,while(p) s=(struct node *)malloc(sizeof(node); s-data=p-data; q-next=s; q=s; p=p-next; ,a1,s-data=p-data;,单链表复制(二),p=head;,struct node *head,*head2,*q,*p;,head,an ,h2 next,head2,q-next=s;,s next,a1,申请节点s,an,q=s;,q=head2;,a3 next,a2 next,申请节点h2,a1 next,q=head2-next,s-data=p-data;,若走出while(p)则复制过程结束,free(head2);,return(q);,返回头指针,head,q-next=NULL; q=head2-next; free(head2); return(q);,q=head;s=q;p=q-next; while(s) s=p-next; p-next=q; q=p; p=s; ,链表操作倒序,a1 next,a2 next,head,a3 next,an,next,head,next,an,next,a3,a2,a1,倒序,struct node *q,*p,*s;,a1 next,a2 next,head,a3 next,an,s=p-next;,p-next=q;,q=p;,p=s;,s=p-next;,若S非空,到达节点an之后,需要做什么?,struct node *fv(struct node *head) if(!head)|(!head-next)return(head); struct node *p,*q,*s; q=head;s=q;p=q-next; while(s) s=p-next; p-next=q; q=p; p=s; head-next=NULL; return(q); ,a1 next,a2 next,a3 next,q,s,p,an,s,q,到达节点an之后,需要做什么?,head,head = fv(head);,head,链表操作倒序,若是空链,能正常退出 只有一个节点,也能正常退出,第十一讲 文件、算法初步,计算语言与程序设计课程目标 只有一道题的期末考卷,本节要点 硬盘与文件 硬盘、文件与流的基本概念 文件概念、操作一览 文件的读写 格式化读写 数据块读写 定位函数frewind 和fseek,数据似水流,数据是程序运行时,在内存中动态产生的。 程序退出后,计算机的操作系统(OS)随即将该程序的内存空间收回,此内存空间内的数据全部消失(释放)。 如果想保留程序运行时产生的数据,就必须存储到硬盘,形成数据文件。,数据似水流,文件存盘,它保存了谁到硬盘?,数据似水流,文件存盘,它保存了谁到硬盘?,数据似水流,流的概念,C语言I/O系统在程序员和物理设备之间提供了一个转换接口,或者说是一层抽象的界面,我们称它为“流”。而具体的物理实现(包括物理设备、物理存储)称之为文件。 所有的流具有相同的行为(输入/输出数据),用来进行磁盘文件写入的函数也可以进行键盘、显示器等的读写操作,逻辑上相同,仅是物理层驱动不同。,C语言中有两种类型的流: 文本流(text stream)。一个文本流由一行字符组成,换行符表示一行结束。,二进制流(binary stream)。一个二进制流对应写入到设备的内容,由字节序列组成,没有字符翻译。,硬盘与文件,硬盘原理图,磁道,每个磁道内是固定长度、 连续分布的扇区,读写磁头,柱型结构的硬盘,文件在硬盘的存放形式,数据簇1,数据簇2,文件1存储区域,文件2存储区域,硬盘空间,项目2分配内存,有限的内存,函数,数据,项目2常驻数据区,目录索引区,文件1起始簇号,文件2起始簇号,建立数据文件,数据,文件就是数据流,文件是顺序存储在某块区域,内存单元用地址标记; 硬盘空间用扇区的簇号标记,没有地址的概念。 文件内部有一个偏移量i指示文件当前操作记录的下标位置。,i,0,当前操作纪录位置,1,当前操作纪录位置,2,第十一讲 文件、算法初步,计算语言与程序设计课程目标 只有一道题的期末考卷,本节要点 硬盘与文件 硬盘、文件与流的基本概念 文件概念、操作一览 文件的读写 格式化读写 数据块读写 定位函数frewind 和fseek,文件概念、操作一览,数据存盘:文件,文件名.扩展名,以ASCII码存文件:一组ASCII码构成文本文件,直接把二进制存文件:一组二进制码构成二进制文件,它们都是数据流,扩展名用于文件分类,文件指针FILE *fp,fp=fopen(“文件名“,“打开方式“),字符读写函数fgetc和fputc,字符串读写函数fgets和fputs,数据块读写函数fread和fwtrite,格式化读写函数fscanf和fprintf,关闭文件 fclose(fp),首先建立 文件指针,其次在打开文件的同时描述文件名以及属性,第三是选择对应的读写函数,最后,打开的文件必须关闭,语言用一指针指向一个文件,该指针称为文件指针,通过文件指针对它所指的文件进行各种操作。,文件内部的当前操作位置偏移,在文件内部有一个位置指针。用来指向文件的当前读写字节。每次读写文件之后,该位置指针将向后移动相应的字节。 在文件打开时,该指针总是指向文件的第一个字节。应注意文件指针和文件内部的位置指针不是一回事。 文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。 文件内部的位置指针可以理解为一个偏移量,用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。,fp,文件,纪录在磁盘上顺序排列,i,i,i,a,b,c,文件打开函数fopen(),fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(“文件名.扩展名”,”打开文件方式”); 其中: 文件指针名必须是被说明为FILE 类型的指针变量; 文件名是被打开文件的文件名,扩展名是文件类型说明,可以省略; 打开文件方式是指文件流的类型和读写操作以及新建还是追加在文件尾部要求。 例如: FILE *fp; fp=fopen(“file“,“r“); 在当前目录下打开文件file,“读”操作,并使fp指向该文件。 又如: FILE *fp; fp=fopen(“c:hzk16“,“wb+“); 打开C驱动器磁盘的根目录下的一个二进制文件hzk16,按二进制方式读写操作。两个反斜线“ ”中的第一个表示转义字符,第二个表示根目录。,读一个文件,意味着它已经存在,如何从键盘输入文件名(动态指定的目录下)?,C语言与程序设计基础2014C文件路径和删除文件名的使用范例,/程序功能:从键盘上输入一个字符串,存储到一个磁盘文件lwz.dat中 /使用格式:可执行文件名=要创建的磁盘文件名 void main(void) FILE *fp; char ch; if (fp=fopen(“lwz.dat“,“w“)=NULL) printf(“can not open this filen“); getch(); exit(-1); /以下程序是输入字符并存储到指定文件中,以输入符号“”作为文件结束 printf(“输入字符n“); for( ; (ch=getchar() != '' ; )fputc(ch,fp); fclose(fp); ,定义一个文件指针,如果打开文件失败返回的指针为空,退出循环,关闭fp指向的文件,输入字符并存储到lwz.dat文件中,打开文件操作失败,退出程序,#include;#include;#include;,建立一个文件,void input(char *); int main(void) FILE *fp; char FileName40; char ch; input(FileName); if (fp=fopen(FileName,“w“)=NULL) printf(“can not open this filen“);exit(-1); printf(“输入字符n“); for( ; (ch=getchar() != '' ; )fputc(ch,fp); fclose(fp); return(0); void input(char *p) printf(“输入要建立的文件名及路径:“); scanf(“%s“,p); ,从键盘输入文件名,定义一个文件指针,返回来自键盘的字符串。,按指定的文件名打开一个文件,写操作。,输

注意事项

本文(2014c语言与程序设计第十一讲(文件)章)为本站会员(E****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.