南邮c语言程序设计课件第11章091115

南邮c语言程序设计课件第11章091115

ID:5580818

大小:635.00 KB

页数:26页

时间:2017-11-16

南邮c语言程序设计课件第11章091115_第1页
南邮c语言程序设计课件第11章091115_第2页
南邮c语言程序设计课件第11章091115_第3页
南邮c语言程序设计课件第11章091115_第4页
南邮c语言程序设计课件第11章091115_第5页
南邮c语言程序设计课件第11章091115_第6页
南邮c语言程序设计课件第11章091115_第7页
南邮c语言程序设计课件第11章091115_第8页
南邮c语言程序设计课件第11章091115_第9页
南邮c语言程序设计课件第11章091115_第10页
资源描述:

《南邮c语言程序设计课件第11章091115》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计2021/6/191第十一章流与文件主讲:计算机学院朱立华内容提要本章介绍流与文件的有关知识:什么是流,什么是文件,为什么需要文件文件的两种类型:文本文件与二进制文件,数据的不同存储形式文件操作需要用到的FILE类型,文件操作的基本步骤重点是文件的几种读写方式:字符的读写字符串的读写无格式读写格式读写文件的随机访问方式,重点是几个改变文件指针位置的函数的使用方法两种用程序实现文件复制的方法2021/6/193流与文件的概念流:数据的流动称为流,---数据流动总是和设备或外部介质有关文件:与数据流动有关的设备和介质统称为文件已接触

2、到的文件:源文件、目标文件、可执行文件等还有什么需要用到文件?:之前所有程序的原始数据或者从键盘读入或者赋值;每次运行的结果未保存下来,下次想看结果必须再次运行程序。但是,程序中的原始数据、中间结果、最终结果有时需要以数据文件的形式保存下来并在程序中执行相关操作文件操作解决的问题:通过运行程序,能实现数据文件的读写存储等操作,从而解决程序中的数据永久存储问题文件操作的主要步骤:定义文件指针打开文件,读写,关闭2021/6/194文件指针每一个文件对应一个文件指针,文件操作必须通过文件指针才能完成。几个常用的文件指针:键盘--stdin,显示器

3、--stdout,打印机—sprn从键盘(stdin)和显示器(stdout)输入输出数据的操作通常将键盘文件和显示器文件省略了字符、字符串、数值型变量的输入/输出用终端方式以及等效的文件输入输出方式对比如下:终端输入输出文件输入输出charch;//字符型ch=getchar();putchar(ch);charch;ch=fgetc(stdin);fputc(ch,stdout);chars[10];//字符串gets(s);puts(s);chars[10];//字符串fgets(s,5,stdin);fputs(s,stdout);i

4、ntn;//整型scanf(“%d”,&n);printf(“n=%d”,n);intn;//整型fscanf(stdin,“%d”,&n);fprintf(stdout,“n=%d”,n);2021/6/195文件指针以下主要讨论磁盘文件,磁盘是一种外部介质,与键盘和显示器不同,它可以持久地保存数据。专门存放数据的磁盘文件我们称其为数据文件流的数据组织形式分为字符序列和字节序列,前者称为文本流,后者称为二进制流。例:double型常量136467.56789,如果是一个文本流,共占12个字节(一个字符对应一个ASCII码,每一个AS

5、CII码占一个字节);如果是二进制流,共占8个字节例:longint型常量100,如果是一个文本流,共占3个字节;如果是二进制流,共占4个字节与文本流和二进制流对应的磁盘文件分别称为文本文件和二进制文件。2021/6/196文件的打开与关闭并不是每一次读写文件操作都需要进行磁盘访问读写操作的本质:每一次对磁盘的读写都要移动磁头,以寻找磁道扇区。若程序中的每一次读写操作都对应一次实际的磁盘访问,则要花费很多读写时间,而且对磁盘的损耗大。解决方案:系统在内存中为程序所需要的每一个文件开辟一个“缓冲区”:当程序从磁盘文件读取数据时,一次将一批数据送

6、到(输入)缓冲区,然后将缓冲区的数据传给程序中的接收变量;如果向磁盘文件输出时,先将程序中的数据送到(输出)缓冲区,待缓冲区装满后,再一次传给磁盘文件。FILE类型:读取一个文件需要许多信息,例如,与该文件对应的内存文件缓冲区的大小和地址、文件当前的读写位置、文件缓冲区中未处理的字符个数、文件使用方式等。这些信息存放在一个结构变量中,我们称此结构为文件类型,取名FILE。2021/6/197文件的打开与关闭File类型的定义:structFILE{shortlevel;//文件缓冲区"满"或"空"的程度unsignedflags;//文件状态

7、标志charfd;//文件描述符unsignedcharhold;//若无文件缓冲区,则不读取数据shortbsize;//文件缓冲区大小unsignedchar*buffer;//文件缓冲区的位置unsignedchar*curp;//指向文件缓冲区当前数据的指针unsignedistemp;//临时文件指示器shorttoken;//用于有效性检验};2021/6/198文件的打开与关闭程序用到一个文件,需要系统在内存建立一个文件缓冲区,并返回一个文件类型变量的地址(FILE类型的指针),这是打开文件打开文件通过调用fopen函数实现,原

8、型为:FILE*fopen(char*filename,char*mode);因此,程序首先需要定义一个FILE*指针来接收fopen函数的返回值,以后通过该指针对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。