将两个文件的同一行内容打印为一行

C语言 码拜 6年前 (2015-10-20) 495次浏览
#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分
找两个文件都有分别有行文本与行文本,再比较去代码与没去代码的区别。较直观。

考虑问题是从编程角度还是解决实际问题会遇到的情况?
如上讲的情况,当两个文件的第一行都读完,应该输出?。接下去第一个文件还有一行,第二个文件已经没有行了,应该输出?。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明将两个文件的同一行内容打印为一行
喜欢 (0)
[1034331897@qq.com]
分享 (0)