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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7340478.html】到电脑端继续下载(重复下载【60天内】不扣币)。

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(单元实验一.pptx)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

单元实验一.pptx

1、西安电子科技大学软件学院,-School of,Computer S,oftware,Xidian University,China,#,外存上的数据存储在文件中,在程序运行时,程序本身和数据一般都存放在内存中。当程序运行结束后,存放在内存中的数据被释放。,如果需要长期保存程序运行所需的原始数据,或程序运行产生的结果,就必须以文件形式存储到外部存储介质上。,外存上的数据存储在文件中,在程序运行时,程序本身和数据一般都存放在内存中。当程序运行结束后,存放在内存中的数据被释放。,如果如果需要长期保存程序运行所需的原始数据,或程序运行产生的结果,就必须以文件形式存储到外部存储介质上。,控制器,运算

2、器,内存储器,外存储器,输入设备,输出设备,数据的流动,与流向,控制信号的,流动与流向,C,语言中的文件概述,文件与文件名,文件,是指存放在外部存储介质上的数据集合,为了标识一个文件,每个文件都必须有一个文件名,其一般结构为:,主文件名,.,扩展名,文件命名规则需遵循操作系统的约定,文件分类,根据文件的内容,可分为程序文件和数据文件,程序文件又可分为源文件、目标文件和可执行文件。,根据文件的组织形式,可分为顺序存取文件和随机存取文件,根据文件的存储形式,可分为文本文件和二进制文件。,C,语言中的文件概述,读文件与写文件,所谓读文件是指,将外存文件中的数据读取到计算机内存的操作。,所谓写文件是指

3、从计算机内存向外存文件写入数据的操作。,构成文件的基本单元与流式文件,C,语言,将文件看作是由一个一个的字符(,ASCII,码文件)或字节(二进制文件)组成的。将这种文件称为流式文件。,文件指针,文件指针类型,文件指针类型格式:,FILE*,说明:所有对文件的操作都需要使用文件指针类型,文件变量,定义格式:,FILE*fp;,说明:要访问某个文件,一定需要首先定义文件指针类型的变量,并将该变量与对应文件关联起来,此后才能进行文件操作,文件的基本操作,文件打开操作,文件关闭操作,读取文件中的数据操作,在文件中写入数据的操作,文件结束检测操作,文件错误检测操作,文件缓冲区与流刷新操作,文件指针定

4、位操作,文件指针位置查询操作,文件指针重定位操作,文件操作的标准库函数,fopen,fclose fcloseall,feof,fgetc /fputc,fgets /fputs,fscanf /fprintf,fread /fwrite,rewind,fseek,ferror,fflush,文件的打开和关闭,对文件进行操作前,必须先打开该文件;使用结束后,应立即关闭,以免数据丢失。,语言规定了标准输入输出函数库,用,fopen(),函数打开一个文件,用,fclose(),函数关闭一个文件。,进行文件操作前,首先应定义一个文件指针变量,格式为:,FILE*fp;,其中,变量名,fp,可换成其他

5、名字,若文件打开操作是成功的,此后在程序中,,fp,就代表外存文件,fact.c,打开文件和关闭文件,用函数,fopen(),打开指定文件,例如,以只读方式打开文件,d:tc20fact.c:,fp=fopen(,d:tc20fact.c,r,);,fp=fopen(,文件名,打开文件方式,),;,用函数,fclose(),关闭前面打开的文件,fclose(fp);,打开文件的方式,fp=fopen(,文件名,打开文件方式,),;,文件打开方式,意义,”,r,”,只读打开一个文本文件,只允许读数据,”,w,”,只写打开或建立一个文本文件,只允许写数据,”,a,”,追加打开一个文本文件,并在文件

6、末尾写数据,”,rb,”,只读打开一个二进制文件,只允许读数据,”,wb,”,只写打开或建立一个二进制文件,只允许写数据,”,ab,”,追加打开一个二进制文件,并在文件末尾写数据,”,r+,”,读写打开一个文本文件,允许读和写,”,w+,”,读写打开或建立一个文本文件,允许读写,”,a+,”,读写打开一个文本文件,允许读,或在文件末追加数据,读取文件中的字符,-,fgetc,函数,fgetc(),从指定的文件读取并返回一个字符,例如,编写程序读取文件“,d:tc20fact.c”,中的数据并显示在屏幕上。,ch=fgetc(fp),;,步骤:,1),定义文件指针变量和其他变量;,2),以读方式

7、打开文件;,3),文件是否结束:是,转,5);,否则,转,4),;,4),从文件中读取一个字符并输出,转,3,);,5),关闭文件。,读取文件中的字符,例如,编写程序读取文件“,d:tc20fact.c”,中的数据并显示在屏幕上。,#include,int main(),FILE*fp;char ch;,fp=fopen(d:tc20fact.c,r);,if(,fp=NULL,),printf(open file error!n);,exit(0);,while(,!feof(fp),),ch=fgetc(fp);,printf(%c,ch);,fclose(fp);,return 0;,创

8、建文件:以写方式打开,再用写入函数,例如,以写入方式打开,(,创建,),文件,d:testchar.dat:,fp=fopen(,d:testchar.dat,w,);,函数,fputc(),将一个字符写入文件,可以忽略返回值,例如:,fputc(ch,fp),;,函数原型:,int fputc(int ch,FILE*stream);,The return value is the character,unless there is an error,in which case,the return value is EOF.,创建元素为字符的文件,步骤:,1),定义文件指针变量和其他变量;

9、2),以写入方式打开文件;,3),写入是否结束:是,转,5);,否则,转,4),;,4),将一个字符常量或变量的值写入文件,转,3,);,5),关闭文件。,例如,编写程序,将从键盘输入前,20,个字符写入文件“,d:testchar.dat”,向文件写入字符数据,-,fputc,例如,编写程序,将从键盘输入前,20,个字符写入文件“,d:testchar.dat”,#include,#include,int main(),FILE*fp;char i=0,ch;,fp=fopen(d:testchar.dat,w);,if(,fp=NULL,),printf(open file error!

10、n);,exit(0);,while(,i 20,),ch=getchar();,fputc(ch,fp);,i+;,fclose(fp);,system(,pause,);,return 0;,复制文件,:,从一个文件读出,向另一个文件写入,编写程序,将“,d:tc20swap.c”,复制一份存放在“,D:testswapbak.c”,。,步骤:,1),定义两个文件指针变量和其他变量;,2),以读方式打开文件,swap.c,;以写方式打开文件,swapbak.c,;,3),文件,swap.c,是否结束:是,转,5);,否则,转,4),;,4),从,swap.c,中读取一个字符写入文件,swa

11、pbak.c,,转,3,);,5),关闭文件。,#include,int main(),FILE*in,*out;char ch;,in=fopen(d:tc20swap.c,r);,out=fopen(d:testswapbak.c,w);,if(,in=NULL|out=NULL,),printf(open file error!n);,exit(0);,while(,!feof(in),),ch=fgetc(in);,fputc(ch,out);,fclose(in);,fclose(out);,return 0;,串的读写:,fgets/fputs,函数,fgets(),从指定文件中读

12、取一个字符串,常用格式:,fgets(,字符数组名,n,文件指针,),;,n,是一个正整数,表示从文件中读出的字符串不超过,n-1,个字符。在读入的最后一个字符后加上串结束标志,0,。,在读出,n-1,个字符之前,若遇到了换行符或,EOF,,则结束。,fgets,函数的返回值是字符数组的首地址。,原型:,char*fgets(char*str,int num,FILE*stream);,The function fgets()reads up to,num,-1 characters from the given file,stream,and dumps them into,str,.fge

13、ts()will stop when it reaches the end of a line,in which case,str,will be terminated with a newline.If fgets()reaches,num,-1 characters or encounters the EOF,str,will be null-terminated.fgets()returns,str,on success,and NULL on an error.,串的读写:,fgets/fputs,函数,fputs(),用于将指定字符串写入文件,常用格式:,fputs(,字符串,文件指

14、针,),;,其中的字符串可以是字符串常量,也可以是字符数组名,或字符指针变量。,原型:,int fputs(const char*str,FILE*stream);,The fputs()function writes an array of characters pointed to by,str,to the given output,stream,.The return value is non-negative on success,and EOF on failure.,fgets,读取文件内容,编写程序,将“,test_time.c”,的内容用,fgets,读取出来并显示在屏幕上。

15、include,#include,#define SIZE 1024,int main(),FILE*in;char str,SIZE+1,;,in=fopen(test_time.c,r);,if(,in=NULL,),printf(open file error!n);,exit(0);,while(,!feof(in),),fgets(str,SIZE,in);,puts(str);,fclose(in);,system(,pause,);,return 0;,格式化读写数据:,fprintf/fscanf,函数,fprintf(),以指定格式向文件写入数据,fscanf,(,文件指

16、针,格式串,输入表列,),;,fprintf,(,文件指针,格式串,输出表列,),;,函数,fscanf(),以指定格式从文件中读取数据,除了增加文件指针参数,函数,“,fprintf,(),、,fscanf,(),”,与,“,printf,(),、,scanf,(),”,在用法相同,fprintf,的返回值为写入的字符个数,,fscanf,的返回值为读取的数据个数,可作为是否正确完成操作的依据。,写入整数或浮点数时,数之间应有间隔,#include,int main(),FILE*in,*out;int a,b;,in=fopen(c.in,r);,out=fopen(csqr.dat,w)

17、if(,in=NULL|out=NULL,),printf(open file error!n);,exit(0);,复制文件:格式化读写,编写程序,将“,d:tc20c.in”,文件中的每个数据取出后,求平方后写入“,D:testcsqr.dat”,。,while(,!feof(in),),fscanf(in,%d,b=a*a;,printf(%8d,b);,fprintf(out,%8d,b);,fclose(in);,fclose(out);return 0;,if(fscanf(in,%d,&a)!=1),break;,数据块读写:,fread/fwrite,读写整块数据,可用来读

18、写一组数据,如一个数组,一个结构变量的值等。,buffer,是一个指针,在,fread,函数中,它表示存放输入数据的首地址。在,fwrite,函数中,它表示存放输出数据的首地址,size,表示数据块的大小(字节数),count,表示要读写的数据块数,fp,表示文件指针,读数据块函数调用的一般形式为:,fread(buffer,size,count,fp);,写数据块函数调用的一般形式为:,fwrite(buffer,size,count,fp);,数据块读写:,fread/fwrite,读数据块函数调用的一般形式为:,fread(buffer,size,count,fp);,buffer,是一

19、个指针,在,fread,函数中,它表示存放输入数据的首地址。在,fwrite,函数中,它表示存放输出数据的首地址,size,表示数据块的大小(字节数),count,表示要读写的数据块数,fp,表示文件指针,The function fread()reads,count,number of objects(where each object is,size,bytes)and places them into the array pointed to by buffer.The data comes from the given input,stream,fp.The return value

20、of the function is the number of things read.You can use,feof,()or,ferror,()to figure out if an error occurs.,写数据块函数调用的一般形式为:,fwrite(buffer,size,count,fp);,定义结构体,描述学生信息的结构:,typedef struct,char Sno10;,char Sname20;,int Grade,;,STUDENT;,定义结构体数组,存储学生信息:,STUDENT studinfo100;,复制文件:数据块读写,编写程序,将“,stud.dat”

21、文件中每个学生的数据取出后显示,再写入“,studbak.dat”,。,int main(),FILE*in,*out;int i;,in=fopen(stud.dat,rb);,out=fopen(studbak.dat,wb);,if(,in=NULL|out=NULL,),printf(open file error!n);,exit(0);,复制文件:数据块读写,编写程序,将“,stud.dat”,文件中每个学生的数据取出后显示,再写入“,studbak.dat”,。,i=0;,while(!feof(in),fread(studinfo+i,sizeof(STUDENT),1,in

22、);,printf(%s%s%dn,studinfoi.Sno,studinfoi.Sname,studinfoi.Grade);,i+;,fwrite(studinfo,sizeof(STUDENT),i,out);,fclose(in);,fclose(out);return 0;,if(fread(studinfo+i,sizeof(STUDENT),1,in)!=1),break;,移动文件指针:,rewind/fseek,rewind,的功能是把文件指针移到文件首,fseek,用来移动文件指针到指定的位置,用法:,rewind(,文件指针,);,移动文件指针:,fseek,fseek

23、用来移动文件指针到指定的位置,“,文件指针”指向被操作的文件。,“位移量”表示指针要移动的字节数,,要求位移量是,long,型数据,以便在文件长度大于,64KB,时不会出错。当用常量表示位移量时,要求加后缀“,L”,。例如,,fseek(fp,10L,SEEK_SET),“,起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首(,SEEK_SET/0,),当前位置(,SEEK_CUR/1,)和文件尾(,SEEK_END/2,)。,用法:,fseek(,文件指针,位移量,起始点,);,fseek,适用于二进制文件,用于文本文件时,应该令所有数据(整数、浮点数和字符串)以相同的宽度写入。

24、例如,,fprintf(out,%8d,b);,文件操作的标准库函数,fopen fclose fcloseall,feof,fgetc /fputc,fgets /fputs,fscanf /fprintf,fread /fwrite,rewind fseek,ferror,fflush,缓冲文件系统,文件指针在缓冲区移动,fflush,用于清除缓冲区内容,文件以写方式打开时将缓冲区内容写入外存文件,外存文件,输出文件缓冲区,输入文件缓冲区,程序数据区,a,实验一,基本要求,1.,用随机函数产生,1000,个整数,保存在文件(,intfile.dat,)中,然后将文件中的数据读取出来显示。,

25、1,)用,fprintf,函数写入数据,要注意整数之间需要有分隔符号,所有数据写入后关闭文件,;,(,2,)重新打开文件,用,fscanf,函数逐个读取并显示数据;,(,3,)用,fseek,函数对文件指针进行定位,仅读取需要的数据。例如,分别将文件指针定位到第,5,个整数、第,10,个整数,读取这两个整数并显示;分别将文件指针定位到倒数第,5,个整数、倒数第,10,个整数,读取这两个整数并显示,。,这里要求打开的是二进制文件,用,fscanf,函数写入数据时应采用相同的场宽。,基本要求,2.,建立一个由,n,名学生信息组成的文件(,studinfo.dat,),其中,每个学生都有学号、姓

26、名、性别和三门课程的成绩。,(,1,)用结构体类型描述学生的基本信息,其中:学号和姓名用字符串表示,其长度定义参照本校的情况,课程名自行定义,成绩采用百分制;,(,2,)学生信息由键盘输入,先存入结构体变量;,(,3,)用,fwrite,函数将结构体变量的值写入文件,studinfo.dat,;,(,4,)用,fread,函数从文件,studinfo.dat,中读取数据并按一定格式显示在屏幕上(例如,每行显示一个学生信息,各项信息之间要有一定的间隔,所有学生的所有信息对齐显示等),随机数,随机函数,rand(),#include,RAND_MAX,在,stdlib.h,中定义,不大于双字节整数

27、的最大值,32767,产生,0,RAND_MAX,之间的随机数,magic=rand();,产生,0,b-1,之间的随机数,magic=rand()%b;,产生,a,a+b-1,之间的随机数,magic=rand()%b+a;,随机数,随机函数,srand,为函数,rand(),设置随机数种子来实现对函数,rand,所产生的伪随机数的“随机化”,通过键入随机数种子,产生,0,100,之间的随机数,scanf(%u,srand,(seed);,magic=,rand,()%100+1;,使用计算机读取其时钟值并把该值自动设置为随机数种子,产生,0,100,之间的随机数,函数,time(),返回以秒计算的当前时间值,该值被转换为无符号整数并用作随机数发生器的种子,#include ,srand,(,(unsigned),time(NULL);,magic=,rand,()%100+1;,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服