哈工大《C语言程序设计》课程课件.ppt

  1. 1、本文档共775页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
将文件存储在哪里? 外存 内存容量小,容易健忘,掉电即失 外存容量大、断电后数据不丢失,可重复使用,永久保存,不健忘 磁盘(Magnetic disks) 磁盘表面涂有磁性物质 磁性单元的N-S极的两种指向表示0-1 光盘(CD、DVD) 光盘表面有一层特殊介质 介质的高低不平的交替表示0-1 U盘(Flash Memory) 闪存,可用电擦除的ROM 一种电化学存储介质,电流的通断表示0-1 文件的分类 1. 按文件的逻辑结构 记录文件 由具有一定结构的记录组成(定长和不定长) 流式文件 由一个个字符(字节)数据顺序组成 数据流,字节流 C语言中的流(Stream) 通过一个流(通常和键盘相关)获得全部的输入 通过另一个流(通常和屏幕相关)写出全部的输出 较大规模的程序 可能需要额外的流 如磁盘文件、网络端口、打印机等 自来水厂 任意输入的源 任意输出的目的地 C语言中的标准流 stdio.h提供了三种标准流 是备用的,不能声明、打开和关闭 C语言中的标准流 scanf(), getchar(), gets()等通过stdin获得输入 printf(), putchar(), puts()等用stdout进行输出 stdout和stderr在默认情况下都指向屏幕,有何区别呢? 输出到stdout的内容先保存到缓冲区 而输出到stderr的内容则直接输出到屏幕 输入/输出重定向 某些操作系统允许重定向标准输入与输出 DOS和UNIX允许程序从文件获得输入或向文件写数据 这种重定向,程序本身是感觉不到的 输入重定向(Input Redirection) D:\demo infile.txt 从终端(键盘)输入数据改成从文件中读入数据 输出重定向(Output Redirection) D:\demo outfile.txt 从终端(显示器)输出数据改成向文件中写数据 文件的分类 文本文件(Text file) 二进制文件(Binary file) 可执行的C程序 二进制文件 2. 按数据的组织形式 C程序的源代码 文本文件 文本文件和二进制文件有什么区别呢? 文件的分类 文本文件 用字节表示字符的字符序列,存储每个字符的ASCII码 如整数123在文本文件中占3个字节,分别存放这3个字符的ASCII码 若存1234呢? 二进制文件 如短整型数123,在内存占2个字节,在二进制文件中也占2个字节 节省空间 13.1二进制文件和文本文件 二进制文件 字节不一定表示字符,没有字符变换,读写速度快 按照数据在内存中的存储形式(二进制)存储到文件 数据按照存入的类型读出,才能恢复其本来面貌 先按int类型读,为0x0064,是整数100 而按float读,将读出0对应的float值为1.4012985e-43,近似为0,面目全非 13.1二进制文件和文本文件 二进制文件 字节不一定表示字符,没有字符变换,读写速度快 按照数据在内存中的存储形式(二进制)存储到文件 缺点 不易阅读,妨碍调试过程 可移植性差,因不同类型的计算机存储数据的方式不同 存储int型2字节,4字节?先存高位字节,低位字节? 13.1二进制文件和文本文件 数据不仅要按照存入的类型读出,还要按存入的格式读出,才能恢复其本来面貌 公开的标准文件格式 如bmp、tif、gif、jpg和mp3等类型的文件,有大量软件能生成和使用这些类型的文件 不公开或加密的文件格式 如Microsoft Word的doc格式就不公开,所以至今没有Word以外的其他软件能完美地读出doc文件 一个C文件就是一种字节序列,无论何种形式 为什么一定要区分文本文件和二进制文件呢? 文本文件——按行划分 所以必须用特殊的字符标记行的结尾 某些OS还可能用特殊的字符标记文件的末尾 例如,DOS将Ctrl+Z设定为文件的结束符 二进制文件——不是按行划分的 可合法地包含任何字符,故不可能留出文件结束符 13.1二进制文件和文本文件 文件与流的关系 程序通过文件打开操作把流与设备联系起来,文件打开后,可在程序和文件之间交换数据 在程序运行时,由程序在磁盘上建立一个文件 文件打开后,通过写操作将数据存入该文件 由程序打开磁盘上的某个已有文件,通过读操作将文件中的数据读入内存供程序使用 程序通过文件关闭操作断开流与文件的联系 文件指针(File Pointer) FILE *fp ; 定义了FILE型指针变量,标识一个特定的磁盘文件 与文件相关联的每个流都有一个FILE类型的控制结构,定义有关文件操作的信息,用户绝对不应修改 C程序中流的打开和关闭是通过文件指针实现的 文件指针的类型为FILE * 文件指针(File Poi

文档评论(0)

778899123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档