版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文件澳门
http://qzq.cc/
皇冠/游戏
http://tid.cc
红宝石
/
利来
/关闭打开的所有文件
在程序中打开三个磁盘上已有的文件,读取文件中的内容并显示在屏幕上,要求调用fcloseall()函数一次关闭打开的三个文件。(范例位置:光盘\TM\fl\12\1)#include<stdio.h>main(){FILE*fp1,*fp2,*fp3; /*定义文件类型指针fp1、fp2、fp3*/charfile1[20],file2[20],file3[20],ch;intfile_number; /*关闭的文件数目*/printf("pleaseinputfile1:");scanf("%s",file1); /*输入文件1的路径及名称*/printf("file1:\n");if((fp1=fopen(file1,"rb"))!=NULL){ch=fgetc(fp1); /*读取文件1中内容*/while(ch!=EOF) /*判断字符是否为文件结尾*/{putchar(ch); /*输出字符*/ch=fgetc(fp1); /*读取字符*/}}else{printf("cannotopen!"); /*若文件未打开输出提示信息*/exit(1);}
关闭打开的所有文件printf("\npleaseinputfile2:");scanf("%s",file2); /*输入文件2的路径及名称*/printf("file2:\n");if((fp2=fopen(file2,"rb"))!=NULL)
{ch=fgetc(fp2); /*读取文件2中内容*/while(ch!=EOF){putchar(ch);ch=fgetc(fp2);}}else{printf("cannotopen!");exit(1);}printf("\npleaseinputfile3:");scanf("%s",file3); /*输入文件3的路径及名称*/printf("file3:\n");if((fp3=fopen(file3,"rb"))!=NULL){ch=fgetc(fp3); /*读取文件3中内容*/while(ch!=EOF){putchar(ch);ch=fgetc(fp3);}关闭打开的所有文件
}else{printf("cannotopen!");exit(1);}/*调用fcloseall()函数关闭打开的文件,将返回值赋给file_number*/file_number=fcloseall();printf("\n%dfilescolsed",file_number);return0;}程序中用到fcloseall()函数,具体使用说明如下:intfcloseall(void)该函数的作用是一次关闭所有被打开的文件。如果函数执行成功,它将返回成功关闭文件的数目,如果出错,则返回EOF常量。该函数原型在stdio.h中。同时显示两个文件内容编程实现将两个不同文件中的内容在屏幕中的指定位置显示出来。(范例位置:光盘\TM\fl\12\2)#include<stdio.h>#include<conio.h>main(){FILE*fp1,*fp2; /*定义两个指向FILE类型结构体的指针变量*/charfilename1[50],filename2[50],a; /*定义数组和变量为字符型*/printf("pleaseinputfilename1:\n");scanf("%s",filename1); /*输入第一个文件所在路径及名称*/printf("pleaseinputfilename2\n");scanf("%s",filename2); /*输入第二个文件所在路径及名称*/fp1=fopen(filename1,"r"); /*以只读方式打开输入的第一个文件*/fp2=fopen(filename2,"r"); /*以只读方式打开输入的第二个文件*/gotoxy(3,5); /*将光标定位*/printf("file1:\n");a=fgetc(fp1);while(!feof(fp1)){printf("%c",a); /*输出第一个文件中的内容*/a=fgetc(fp1);}gotoxy(3,13); /*将光标定位*/printf("file2:\n");a=fgetc(fp2);
同时显示两个文件内容while(!feof(fp2)){printf("%c",a); /*输出第二个文件中的内容*/a=fgetc(fp2);}fclose(fp1); /*关闭第一个文件*/fclose(fp2); /*关闭第二个文件*/return;}以行为单位读写文件从键盘中输入字符串“祝你好运,我的朋友!”要求将字符串内容输出到磁盘文件中,再从磁盘文件中读取字符串到数组中,最终将其输出在屏幕上。(范例位置:光盘\TM\fl\12\3)#include<stdio.h>main(){FILE*fp; /*定义一个指向FILE类型结构体的指针变量*/charstr[100],s[100],filename[50]; /*定义数组为字符型*/printf("pleaseinputstring!\n");gets(str); /*获得字符串*/printf("pleaseinputfilename:\n");scanf("%s",filename); /*输入文件所在路径及名称*/if((fp=fopen(filename,"wb"))!=NULL)/*以只写方式打开指定文件*/{fputs(str,fp); /*把字符数组str中的字符串输出到fp指向的文件*/fclose(fp);}else{printf("cannotopen!");exit(0);}if((fp=fopen(filename,"rb"))!=NULL){while(fgets(s,sizeof(s),fp))/*从fp所指的文件中读入字符串存入s中*/printf("%s",s);/*将字符串输出*/fclose(fp); /*关闭文件*/}}重命名文件编程实现重命名文件,具体要求如下:从键盘中输入要重命名的文件的路径及名称,文件打开成功后输入新的路径及名称。(范例位置:光盘\TM\fl\12\4)#include<stdio.h>voidmain(){FILE*fp; /*定义一个指向FILE类型结构体的指针变量*/charfilename1[20],filename2[20]; /*定义数组为字符型*/printf("Pleaseinputthefile'snamewhichdoyouwanttochange:\n");scanf("%s",filename1); /*输入要重命名的文件所在的路径及名称*/if((fp=fopen(filename1,"r"))==NULL) /*以只读方式打开指定文件*/{printf("Cannotopenthefile%s\n",filename1);exit(0);}else{printf("Opensuccessful!");fclose(fp); /*关闭文件*/printf("Pleaseinputnewname!\n");scanf("%s",filename2); /*输入新的文件路径及名称*/if(rename(filename1,filename2)==0) /*调用rename函数进行重命名并判断是否成功*/printf("Renamethefile%ssucceed!\n",filename1);elseprintf("Cannotrenamethefile%s!\n",filename1);}}重命名文件合并两个文件信息有两个文本文档,第一个文本文档的内容是:“书中自有黄金屋,书中自有颜如玉。”,第二个文本文档的内容是:“不登高山,不知天之高也;不临深谷,不知地之厚也。”编程实现合并两文件信息,即将文档二的内容合并到文档一内容的后面。(范例位置:光盘\TM\fl\12\5)#include<stdio.h>main(){charch,filename1[50],filename2[50]; /*数组和变量的数据类型为字符型*/FILE*fp1,*fp2; /*定义两个指向FILE类型结构体的指针变量*/printf("Pleaseinputfilename1:\n");scanf("%s",filename1); /*输入文件所在路径及名称*/if((fp1=fopen(filename1,"a+"))==NULL) /*以读写方式打开指定文件*/{printf("Cannotopen\n");exit(0);}printf("File1:\n");ch=fgetc(fp1);while(ch!=EOF){putchar(ch); /*将文件1中的内容输出*/ch=fgetc(fp1);}printf("\nPleaseinputfilename2:\n");scanf("%s",filename2); /*输入文件所在路径及名称*/if((fp2=fopen(filename2,"r"))==NULL) /*以只读方式打开指定文件*/{printf("Cannotopen\n");exit(0);}合并两个文件信息
printf("File2:\n");ch=fgetc(fp2);while(ch!=EOF){putchar(ch); /*将文件2中的内容输出*/ch=fgetc(fp2);}fseek(fp2,0L,0); /*将文件2中的位置指针移到文件开始处*/ch=fgetc(fp2);while(!feof(fp2)){fputc(ch,fp1); /*将文件2中的内容输出到文件1中*/ch=fgetc(fp2); /*继续读取文件2中的内容*/}fclose(fp1); /*关闭文件1*/fclose(fp2); /*关闭文件2*/}错误处理编程实现将文件中的制表符换成恰当数目的空格,要求每次读写操作后都调用ferror()函数检查错误。(范例位置:光盘\TM\fl\12\6)#include<stdio.h>#include<stdlib.h>voiderror(inte) /*自定义error函数判断出错的性质*/{if(e==0)printf("Inputerror\n");elseprintf("Outputerror\n");exit(1); /*跳出程序*/}main(){FILE*in,*out; /*第一两个文件类型指针in和out*/inttab,i;charch,filename1[30],filename2[30];printf("Pleaseinputthefilename1:");scanf("%s",filename1); /*输入文件路径及名称*/printf("Pleaseinputthefilename2:");scanf("%s",filename2); /*输入文件路径及名称*/if((in=fopen(filename1,"rb"))==NULL){printf("Cannotopenthefile%s。\n",filename1);exit(1);}if((out=fopen(filename2,"wb"))==NULL){printf("Cannotopenthefile%s。\n",filename2);exit(1);}
错误处理tab=0;ch=fgetc(in); /*从指定的文件中读取字符*/while(!feof(in)){if(ferror(in))error(0);if(ch=='\t'){for(i=tab;i<8;i++){putc('',out);if(ferror(out))error(1);}tab=0;}else{putc(ch,out);if(ferror(out))error(1);tab++;if(tab==8)tab=0;if(ch=='\n'||ch=='\r')tab=0;}ch=fgetc(in);}
fclose(in);fclose(out);}错误处理文件分割编程实现将一个较大的文件分割成若干个较小的文件,要求分割成的文件不改变原有文件内容。(范例位置:光盘\TM\fl\12\7)#include<stdio.h>#include<string.h>#include<stdlib.h>FILE*in,*out; /*定义两个指向FILE类型结构体的指针变量*/charfilename[50],ch,cfilename[50];voidspace() /*分隔文件函数*/{charext[6][6]={"a.txt","b.txt","c.txt","d.txt","e.txt","f.txt"}; /*分割出来的文件扩展名*/unsignedlongintn=1,k,byte=0; /*定义变量类型为无符号的长整形变量*/unsignedintj=0,i=0;printf("Pleaseinputfilename:\n");scanf("%s",filename); /*输入文件所在路径及名称*/strcpy(cfilename,filename); /*输入文件所在路径及名称复制到cfilename中*/if((in=fopen(filename,"r"))==NULL) /*以只读方式打开输入文件*/文件分割{printf("Cannotopenfile\n");exit(0);}printf("Pleaseinputfilesizeafterspace(kb):\n");scanf("%d",&n); /*输入分割后单个文件的大小*/n=n*1024;while(filename[j]!='.')j++;filename[j]='\0'; /*遇'.'时,在该处加字符串结束符*/if((out=fopen(strcat(filename,ext[i]),"w"))==NULL) /*生成分割后文件所在路径及名称*/{printf("Cannotopenfile\n");exit(0);}fsee
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塘厦饭堂承包协议书合同
- 美术社团安全协议书范本
- 安装刷卡机协议书
- 2025内蒙古通辽市农业投资集团有限公司招聘补充笔试备考题库及答案解析
- 碰碰车事故协议书
- 防卫装备合作研究协议书
- 欠款纠纷的和解协议书
- 云南省课后服务协议书
- 2026临沂兰山区委区政府法律顾问选聘(12名)参考考试题库及答案解析
- 2026年辽宁省水利厅直属事业单位面向部分院校公开招聘14人考试参考题库及答案解析
- 中图版地理七年级上册知识总结
- 大连理工大学固态相变各章节考点及知识点总节
- 统编版四年级下册语文第二单元表格式教案
- 2022年12月华中科技大学科学技术发展院基地办招聘1名社会用工笔试参考题库含答案解析
- 测量系统线性分析数据表
- 第三单元课外古诗词诵读《太常引·建康中秋夜为吕叔潜赋》课件
- GB/T 5836.1-1992建筑排水用硬聚氯乙烯管材
- GB/T 23445-2009聚合物水泥防水涂料
- 美国COMPASS电磁导航产品介绍课件
- 论文写作讲座课件
- 危险化学品-培训-课件
评论
0/150
提交评论