#include<stdio.h> #include<stdlib.h> #define LEN 100 int main(void) { FILE *fp,*fs; char n1[LEN],n2[LEN]; int str1,str2; printf("输入第一个文件名:\n"); gets(n1); printf("输入第二个文件名字:\n"); gets(n2); if((fp=fopen(n1,"r"))==NULL) { fprintf(stderr,"不能打开%s\n",n1); exit(1); } if((fs=fopen(n2,"r"))==NULL) { fprintf(stderr,"不能打开%s\n",n2); exit(2); } str1=getc(fp); str2=getc(fs); while(str1!=EOF||str2!=EOF) { while(str1!=EOF&&str1!=""\n"") { putchar(str1); str1=getc(fp); } while(str2!=EOF&&str2!=""\n"") { putchar(str2); str2=getc(fs); } if(str1!=EOF) { if (str2 == EOF) putchar(""\n""); else putchar("" ""); str1=getc(fp); } if(str2!=EOF) { putchar(""\n""); str2=getc(fs); } } fclose(fp); fclose(fs); return 0; }
这是把两个文件的同一行内容打印到一行的程序。
本人想问问这两行代码有必要吗?有什么用处啊?
if (str2 == EOF) putchar(""\n""); else putchar("" "");
解决方案:10分
这是把两个文件的同一行内容打印到一行的程序。
本人想问问这两行代码有必要吗?有什么用处啊?
if (str2 == EOF) //假如到文件尾最后,则输出换行,否则输出 空格分隔
putchar(“”\n””);
else
putchar(“” “”);
解决方案:20分
代码功能归根结底不是别人帮本人看或讲解或注释出来的;而是被本人静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生本人领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
解决方案:10分