




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章文档操作,哈尔滨工业大学计算机科学与技术学院,苏晓红SXH ,C语言大学实用教程,输入输出设备,输入设备键盘,鼠标软盘,硬盘(以文件形式)串口,并口,USB接口,网络端口扫描仪,视频采集卡,电视卡,操纵杆,麦克风.输出设备显示器、打印机软盘、硬盘(以文件的形式)串口、并口、USB接口、网络口扬声器.越来越少的纯输入设备或纯输出设备,标准的输入和输出,操作系统的字符接口一般提供标准的输入和输出设备,如DOS,Linux,Unix.通常,标准输入是键盘,标准输出是终端显示器。操作系统能够重定向标准输入和输出。例如,如果文件被用作标准输入(标准输出),重定向程序本身是察觉不到的。例如,自来水厂,标准输入输出重定向下的DOS,程序程序如下:而(c=getchar()!= n)put char(c);在计算机中,流的概念通常被称为数据流。还有字节流、位流和非常特定的文件流、视频流、音频流等。时间不会倒流。然而,计算机中的许多流可以回流。如果您想重新读取已读取的数据或修改已写入的数据,您可以发出一个流控制命令,使其不流回。例如,网络上有许多数据流。网络和数据线等介质只有很小的数据缓冲区,没有存储大量信息的能力。文件的概念使计算机的记忆很容易被忘记。因此,数据必须存储在“非健忘”的外部存储器中,如硬盘、软盘、光盘和磁带。这些媒体可以永久存储大量信息。通常,文件以文件的形式用于用户和应用程序。文件通常是指存储在外部介质上的一组名称(文件名)相关的数据。用于数据长期存储的文件可以实现数据共享。程序运行时,程序可以在磁盘上创建文件,数据可以通过写操作存储在文件中。或者,程序打开磁盘上的现有文件,并将文件中的数据读入内存,以便程序通过读取操作使用。对于文件的存储,可以建立几个目录(文件夹)来将文件保存在目录中。保存在同一级别目录中的文件不能同名。对于用户来说,只要他们知道文件的路径(完整目录)和文件名,他们就可以使用文件C:homeSunnermain.c这是操作系统的福气,文件的类型,二进制文件是一个字节序列,没有字符转换是存储在文件中的,如整数127根据数据在内存中的存储形式,占用2个字节,000000000111111,那么该文件也存储为0000000011111111 2字节文本文件/ASCII码文件是存储在字符序列文件中的每个字符的ASCII码,如文件中3字节的整数127,分别存储3个字符的ASCII码,即49、50、55,文件格式和数据必须根据存储的类型读出。 为了恢复开放标准格式如bmp、tif、gif、jpg、mp3和其他类型文件的原始外观,有很多软件可以生成和使用这些类型的文件,也有未发布的,甚至加密的文件格式如MicrosoftWord文档格式没有公开,到目前为止除了Word没有其他软件可以完美地读取文档文件,文件访问,基本模式打开:打开文件获取指针,引用,句柄等。证明文件可以被使用。read:read file参数通常指示要读取多少字节以及要读取哪个内存块。每次调用这个函数时,它都会在最后一次调用结束时被读取(因此它是一个输入流)。写文件参数通常指示向文件写入哪个内存块以及写入多少字节。每次调用这个函数时,它都写在最后一次调用的末尾(所以它是一个输出流)close:关闭文件表示操作结束,文件不再被使用。文件使用后必须关闭,否则会影响系统性能寻道:文件位置随机控制流的当前位置,文件访问用C语言,# include # includeintopen(常量字符*路径名,不可访问);intfd=open(C:CONFIG。系统”,0 _ RDWR | 0 _ CREAT);路径名是文件名,包含路径。如果没有路径,这意味着在当前目录中打开文件访问是打开方法。它通常用作0 _ RDONLY、0 _ WRONLY、0 _ RDWR和0 _ CREATE、0 _ TRUNC、0 _ APPEND,或者操作返回值是文件句柄,稍后将使用它。如果打开失败,返回值为-1,用C语言进行文件访问,INTREAD (INTHANDLE,VOID * BUF,UNSIGNED LEN);intn_read=read(fd、buf、BUFSIZ);从文件中读取的Len字节存储在buf开始的地址单元中。handle是通过打开获得的文件句柄。buf是保存读取内容的内存指针。len是可以读取的最大字节数。返回值是实际读取的字节数,可能大于len。返回0表示读取到末尾,返回-1表示错误,用C语言访问文件,int write(in handle,void * buf,无符号len);intn_write=write(fd、buf、BUFSIZ);将从buf开始的len字节写入文件句柄是打开的。文件句柄buf是要写入的内容的内存指针。写入多少字节,返回值是实际写入的字节数,可能小于len。Returning -1表示错误,用C语言访问文件,intclose(inthandle);intret=关闭(fd)。将缓冲区中剩余的数据写入文件句柄是通过打开获得的文件句柄。成功关闭返回0;否则,当-1驱动器中没有磁盘或磁盘空间不足时,将导致关闭失败。c语言文件访问,long lseek(inthandlelongofsetintfromthere);intpos=lseek(fd,100L,SEEK _ CUR);句柄是通过打开获得的文件句柄的偏移量,它相对于fromwhere的位置。它可以是一个负数,从何处开始:查找集-文件开始查找当前位置查找结束-文件的结尾成功地返回移动的当前位置,从文件的开头开始计数。否则,返回到-1L,熟练地使用curPos=lseek(fh,0L,SEEK _ CUR);获取当前位置指针的位置文件长度=l SEK(FH,0l,seek _ end);获取文件长度和唯一的文件访问的C语言。下面描述的函数都是在文件* fopen中定义的(常量字符*文件名,常量字符*模式);文件*fp=fopen(C:CONFIG。系统, rw ;文件名是包含路径的文件名。如果没有路径,则表示在当前目录下打开文件的模式是常用的打开模式,分别为“r”、“w”、“rw”和“a”,表示只读、只写、读写和添加“rb”,表示只读二进制文件的返回值是指向该文件的指针,保留供以后使用。如果打开失败,返回值为空。文件指针),文件* fp * fp是一个文件指针变量,用于标识特定的磁盘文件typedefstruct shortlevel/*缓冲区“满”或“空”的程度*/unsignedflags。/*文件状态标志*/charfd。/*文件描述符*/unsignedcharhold。/*不要读取没有缓冲区的字符*/short size;/*缓冲区大小*/unsignedchar *缓冲区。/*数据缓冲区的位置*/unsignedchar*curp。/*指向*/unsignedstemp的当前指针。/*临时文件指示符*/short token;/*用于有效性检查*/文件;在stdio.h文件中定义,c语言具有唯一的文件访问权限,字符在intfgetc(FILE*fp)中读写。从fp中读取一个字符,如果读取文件的结尾,则返回到EoFintPutc(int c,FILE*fp)。如果输出到fp的字符C写得不正确,将返回EOF否则,将返回C语言和C语言的唯一文件访问,并读取和写入字符字符串。特殊情况fget(buf,sizeof(buf),stdin);int fput(const char * s,FILE * FP);C语言唯一文件访问,格式读写整数fscanf(文件* fp,常量*格式,);FSCANF (FP),% d,% 6.2f ,用C语言进行的唯一文件访问,按数据块读写无符号字符(void * ptr,无符号大小,无符号数字,文件* FP);从fp到ptrsize是每个数据块的大小。nmemb是允许写入的最大数据块数。无符号FWRITE(常量无效* PTR,无符号大小,无符号NMEMB,文件* FP)返回读取的数据块的实际数量。将ptr指向的数据块写入FP,用C语言进行唯一的文件访问,文件位置。为随机读写文件而打开的文件中的位置指针指示当前的读写位置。对于文件的每次顺序读取和写入,文件指针自动指向下一个读取和写入位置INTFSEEK(文件* FP,长偏移量,从何处读取);将fp的位置指针从以下位置移动偏移字节:seek _ set或0-文件开始SEEK_CUR或1-当前位置SEEK_END或2-文件结束int ftell(FILE * FP);返回fp的当前位置指针int wind(FILE * FP);让fp的位置指针指向文件的第一个字节,即C语言唯一的文件访问,并判断文件是否结束于(FILE * FP);当文件位置指针指向fp的末尾时,它返回一个非零值;否则,它返回零值。错误处理。错误处理文件错误通常是由外界引起的。错误率很高。它被删除,修改,磁盘空间已满,并由其他文件打开。通过判断返回值发现错误。当所有文件操作都出错时,它返回-1错误处理并向用户打印错误信息,等待用户的处理无效符(const char * s);标准错误的输出字符串,后跟错误文本描述,错误处理例10.1,# include # include # include # include main()/* c : ABC文件不存在*/intfh=open (c: ABC。“基本知识”,只读|二进制);If(fh=-1)/*fh必须是-1 */ perror( cantonpenc : ABC。错误)。,美国广播公司。ABC。error: nosuchfileorderory,这两种方法的区别在于,开放系列的功能一般都是由操作系统直接提供的,而且它的使用是相对通用的。在各种语言中,open family的常见情况可以直接反映文件的真实情况,因为它的操作不假设文件的任何结构。Fopen系列函数包装开放的系列函数,提供更强大的功能,但效率较低的fopen系列更适合处理文本文件或具有单一结构的文件。在实验10文件复制和附加中,程序1:根据程序提示,从键盘输入已有文本文件的完整文件名,然后输入新文本文件的完整文件名,然后程序将已有文本文件的所有内容复制到新文本文件中,通过查看文件内容来验证程序执行结果。,实验10文件复制与追加,main()/*文件拷贝*/while(ch=fgetc(fpSrc)!=EOF)如果(fputc(ch,FPDst)=EOF) printf(复制失败!);退出(0); 打印(“复制成功”. n );、# include # DefineMaxLen 80 IntCopyFile(常量字符*字符名称,常量字符*字符名称);main() charsrcFilenameMAXLEN;/*源文件名*/CharDsFileNameMAXLEN;/*目标文件名*/printf( Inputsourcefilename : );scanf(% s ,SRCfilename);printf( Inputdestinationfilename : );scanf(% s ,DSfilename);if(CopyFile(srcFilename,DstFileName) printf( CopySuccesse . n );其他 perror(Copy failed :);,例10.4文件复制,intCopyFile(constchar*srcName,const char * DSname) FILE * FPSRc=NULL;文件* fpDst=空;intch,rval=1;fpSrc=fopen(srcName,“Rb”);if(FPSRc=空)gotoERRORfpDsT=fopen(域名,“WB”);if(FPDst=空)gotoERROR同时(ch=fgetc(fpSrc)!=EOF)if(fputc(ch,FPDst)=EOF)GoToError;,/*确保存盘*/ff rush(FPDst).gotoEXIT错误: RVal=0;EXIT:if(fpSrc!=NULL)fclose(fpSrc).if(fpDst!=NULL)fc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 前端技术面试题及答案
- 2025年中国合同法中的漏洞与改进
- 2025员工试用期合同协议书范本「标准版」
- 2025珠宝首饰购销合同范本
- 2025酒店管理租赁合同范本
- 婚内财产协议书范本(正式文本)
- 公告知识培训课件
- 搭建帐篷安全知识培训班课件
- 2025设备租赁合同补充协议范本
- 公司财务知识培训视课件
- 干洗店试题及答案
- 2025年司机三力考试题库及答案
- 江苏南通开放大学招聘笔试真题2024
- 2025年甘肃省高考历史试卷真题(含答案解析)
- 食堂肉类备货方案(3篇)
- 智能微电网应用技术课件
- DB42T 1497-2019 公路工程地质调绘技术规程
- 光谷华科附小数学试卷
- 中国2030年能源电力发展规划研究及2060年展望
- 外协供应商品质管理制度
- BIM技术在绿色建筑碳足迹计算与优化中的应用研究
评论
0/150
提交评论