ImageVerifierCode 换一换
格式:PPT , 页数:26 ,大小:292.50KB ,
资源ID:8832901      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8832901.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第10章 文件.ppt)为本站会员(hskm5268)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

第10章 文件.ppt

1、C语言大学实用教程,2009年2月,哈尔滨工业大学计算机学院,,第10章 文件,本章内容,文件的随机输入/输出,文件概述,c文件操作的实现,文件的输入/输出,计算机的内存容易健忘,所以数据必须保存在硬盘、软盘、光盘和磁带等“不健忘”的外存上 这些能大量、永久保存信息的媒介,一般都以文件的形式给用户及应用程序使用 文件 一般指存储在外部介质上具有名字(文件名)的一组相关数据的集合,这些数据是以记录的形式存放的 用文件可长期保存数据,并实现数据共享 程序中的文件 在程序运行时由程序在磁盘上建立的一个文件,并通过写操作将数据存入该文件;或由程序打开磁盘上的某个已有文件,并通过读操作将文件中的数据读入

2、内存供程序使用,文件概述,文件缓冲区,程序数据区,输出一个字符,输出一个数据块,读入一个字符,读入一个数据块,输出文件缓冲区,输入文件缓冲区,磁盘,内存,外存,C的文件,可显示的字符流文件 ( ASCII码文件 )不可显示的字符流文件( 二进制文件 ),ASCII码形式,二进制形式存放,如:有一个整型数10000,是由一个个字符的数据顺序组成。顺序的字符流文件,数据必须按照存入的类型读出,才能恢复其本来面貌 公开的标准格式 如bmp、tif、gif、jpg和mp3等类型的文件 ,有大量软件能生成和使用这些类型的文件 也有不公开、甚至加密的文件格式 如Microsoft Word的doc格式就不

3、公开,所以至今还没有Word以外的其它软件能完美地读出doc文件,文件的格式,本章内容,文件的随机输入/输出,文件概述,c文件操作的实现,文件的输入/输出,数据文件的建立和使用(1),说明文件的数据类型(定义文件指针变量)FILE *变量名;,打开文件 把所指定的文件从磁盘上找到,并与缓冲区连接 把文件从磁盘上找到,即找到文件的文件控制块,并返回文件控制块的首址 程序和文件打交道时,只需和文件指针变量名打交道 打开文件函数调用语句文件指针变量名 = fopen (文件名,文件使用方式); C规定文件路径用双反斜杠 当文件不能打开,无法返回文件控制块首址时,返回的是空指针 NULL,文件指针变量

4、名,数据文件的建立和使用(2),文件内容的操作 从文件中读取数据、把数据输出到文件中或文件位置的定位 关闭文件fclose ( 文件指针变量 ); 程序和文件脱钩,指针不再指向指定文件名 输出结束时,缓冲区内容全部送入文件,本章内容,文件的随机输入/输出,文件概述,c文件操作的实现,文件的输入/输出,文件的输入输出(1),文件的字符输入输出函数,fgetc ( fp );,fputc ( str, fp );,功能:从指定文件fp中读入一个字符返回值:操作成功为输入的字符;失败或文件结束返回值为-1或(EOF),文件指针变量,功能:将str的值输出到指定的文件fp中 返回值:成功为输出的字符;

5、失败返回值为-1,要输出的字符,文件指针变量,#include main() FILE *fp;char *p = C language program;if( ( fp = fopen(e:data1,w) ) = NULL ) printf(This file cannot be opened.);exit(0);while( *p! = 0 )fputc ( *p, fp );p+;fclose ( fp ); ,阅读程序,指出该程序的功能,文件的输入输出(2),例题10-1,#include main() FILE *fp;char ch80;int i=0;if( ( fp = fo

6、pen(e:data1,r) = NULL ) printf(This file cannot be opened.);exit(0);chi= fgetc ( fp );while( chi != EOF )printf( “%c”, chi );i+;chi = fgetc ( fp );fclose ( fp ); ,文件的输入输出(3),例题10-2,文件的字符串输入输出函数,fgets ( str ,n , fp );,文件的输入输出(4),文件指针变量,一次从文件读入的字符个数,字符数组或初始化后的字符指针,功能:从指定fp文件中,输入指定的n-1个字符的字符串,把这些字符串放在指

7、定的str的内存地址中 返回值:成功为参数str指定的地址,失败或读到文件末尾时返回值为NULL 因此该函数从文件读取字符时,遇到下列情况之一结束: 读取了n-1个字符,返回str地址; 读到换行符n或字符串结束符0,返回str地址; 检测到文件尾,返回NULL,输出一个字符串的格式是,文件的输入输出(5),文件的字符串输入输出函数,fputs( str, fp );,功能:将str指向的字符串输出到指定的fp文件中 返回值:操作成功返回值为0,否则返回值为非0,文件指针变量,字符数组或初始化后的字符指针,#include main() FILE *fp;char ch80, filename

8、20;printf(“Please file name:”);gets(filename);if( fp = fopen( filename,“w“) ) = NULL ) printf(“cannot open filen“);exit(0); gets(ch);while( strcmp(ch,”#”) ) fputs ( ch, fp );fputs (n, fp);gets(ch);fclose ( fp ); ,例题10-3,文件的输入输出(5),格式化文件输入输出,printf ( “格式说明符”, ); scanf ( “格式说明符”, );fprintf ( fp, “格式说明

9、符”, ); fscanf ( fp, “格式说明符”, );,文件格式化输入输出函数,文件的输入输出(5),文件指针变量,格式说明符:%d、%f、%c、%s 数据文件中的数据必须用分隔符分开,最好用空格和回车,#include #include struct student long num;char name20;int Eng, Com, Math; ; main() int i, j, p, term, sum5=0;char filename20;struct student gread5,temp;FILE *fp;if (fp=fopen(“d:1“,“r“)= NULL )pr

10、intf(“cannot open file!n“);exit(0);,文件的输入输出(6),例题10-4,for ( i=0; i5; i+ )fscanf (fp, “%ld%s%d%d%d“, ,文件的输入输出(7),例题10-4,for( i = 0; i 4; i+) /* 按总分排序 */p=i;for ( j = i+1; j 5; j+ )if ( sum p sum j ) p = j;if ( i != p ) term = sum i ; sum i = sum p ; sum p = term;temp = gread i ;gread i = gread p ;rea

11、d p = temp;,例题10-4,for ( i=0; i5; i+ )fprintf (fp, “%ldt%st%dt%dt%dt%dn“, greadi.num, greadi.name, greadi.Eng, greadi.Com, greadi.Math, sumi );fclose ( fp ); ,例题10-4,二进制数据块输入输出函数,文件的输入输出(6),fread(缓冲区首地址,sizeof(数据类型),数据的个数,文件指针变量) fwrite(缓冲区首地址,sizeof(数据类型),数据的个数,文件指针变量),该函数是将磁盘(内存)中的二进制数据,每次输入(输出)一整

12、块到内存(磁盘),是内存中一块存储单元的首地址,数组名,或一个已初始化的指针,数据块的大小 = sizeof(数据类型) 数据的个数,本章内容,文件的随机输入/输出,文件概述,c文件操作的实现,文件的输入/输出,数据文件的随机输入输出(1),文件定位,这种对位置指针定位的操作称为文件的随机读写,调整文件位置指针的函数有三个:,文件位置指针定位函数 fseek 文件位置指针复位函数 rewind 文件位置指针查询函数 ftell,数据文件的随机输入输出(2),位置指针函数的一般格式:,fseek (文件指针变量,调整字节总数,调整起始位置);,rewind (文件指针变量);,ftell (文件指针变量);,指向要定位的文件,感谢大家的合作!,祝大家考试取得好成绩!,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报