还剩3页未读,继续阅读
文本内容:
语言程序设计实验报告C专业计算机科学与技术班级卓越工程师班日期2014年1月14日成绩____________第七次实验文件实验指导教师李开学生姓名彭佳伟学号U201414716实验组别___________________同组人姓名___________实验名称文件实验
一、实验目的1熟悉文本文件和二进制文件在磁盘中的存储方式2熟练掌握流式文件的读写方法
二、实验任务
1.文件类型的程序验证ttinclude stdio.hint mainintargc,char const*argv E]short a=0x253f,b=0x7b7b;char ch;FILE*fpl,*fp2;fpl=fopend:\\abcl.bin,wb++”;fp2=fopend:\\abc
2.txt,w++”;fwritea,sizeofshort,1,fpl;fwrite b,sizeof short,1,ffprintffp2,%hx%hx”,a,b;rewindfpl;rewindfp2;while ch=fgetcfpl!=EOF putcharch;putchar\n;while ch=fgetcfp2!=EOF putcharch;putchar\n;fclose fpl;fclosefp2;return0;}1请思考程序的输出结果,然后通过上机运行来加以验证2将两处sizeof short改为sizeof char后,结果会有什么不同?为什么?⑶将fprintf fp2,%hx%hx”,a,b改为fprintf fp2,%d%d”,a,b后结果会有什么不同?
2.源程序修改、替换ttinclude stdio.httinclude stdlib.hint mainintargc,char const*argv口char ch;FILE*fp;if argc!=2・{printfArguments error!\n;exit-1;.}iffp=fopenargv[l],r==NULL・{printfCant open%s file!Xn^,argvEl];exit-1;.}whilech=fgetsfp!=EOF putcharch;fclosefp;return0;1上面源程序中存在什么样的逻辑错误?请对程序进行修改、调试,使之能够正确完成指定任务2用输入输出重定向freopen改写上述源程序中的main函数
3、程序设计编写一个程序,实现以下功能从键盘输入一行英文句子,将每个单词的首字母换成大写字母,然后输出到一个磁盘文件“test”中保存
三、实验步骤及结果说明:测试环境为Linux,路径表示与书上不相同
1、1输出结果为?%{{253f7b7b2输出结果中,“?%{{”变为“?{”因为a,b均为2字节,用char写入文件的话会丢失一部分.3输出结果中,“2535f7b7b”变为“953531611“因为a,b均为2字节,而“%d”是将其作为4字节读入,会读人它后面的数据
2、1错误while ch=fgetcfp!=EOF中ch要么为L要么为0,应合理加上括号修改后代码ttinclude stdio.httinclude stdlib.hint mainintargc,char const*argv E]char ch;FILE*fp;if argc!=2,{printfArguments error!\n;exit-1;・iffp=fopenargv[l],r==NULL,printfCant open%s file!\n”,argv[l];exit-1;whilech=fgetcfp!=EOFputcharch;fclosefp;return0;}2源代码:ttinclude stdio.httinclude stdlib.hint mainintargc,char const*argv[]char ch;FILE*fp;if argc!=
2.printfArguments error!\n;exit-1;}iffp=freopenargv[l],r,stdin==NULL.printfCant open%s file!Xn^,argv[l];exit-1;・}whilech=getcfp!=EOFputcharch;fclosefp;return0;
3、源代码ttinclude stdio.httinclude ctype.hint mainintargc,char const*argv口char sE81];printf Please input an sentence:\n;int i;for i=0;i80;++i・scanfs[i];.if s[i].==\n・break;.s
[0]=touppers
[0];for i=1;s[i]!=\0;++i,{if s[i]=・{s[i+l]=toupper s[i+lj;FILE*fp;fp=freopen,Z/Users/Leonard/Documents/c/test
2.c^,w+”,stdout;for i=0;s[i]!=\0;i++・{putchar s[i]・fclosefp;return0;}运行结果:Pleaseinputansentence:this isa testProgramended withexit code:0|1fhis IsA Test〜
四、实验体会文件的读写操作让C程序的数据得以保存,让数据的存取变得简单易行,让我感觉自己写的程序进入了更高的台阶,程序的生命周期得以延长,要加强对文件读写操作的练习,争取熟练掌握。
个人认证
优秀文档
获得点赞 0