//a—交替打印俩个文件的每一行
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char * argv[])
{
int ch;
int ca;
FILE *fp, *fc;
//分别打开俩个文件
if((fp=fopen(argv[1],"r"))==NULL)
{
fprintf(stderr,"无法打开文件(%s).\n",argv[1]);
exit(EXIT_FAILURE);
}
if((fc=fopen(argv[2],"r"))==NULL)
{
fprintf(stderr, "无法打开文件(%s).\n",argv[2]);
exit(2);
}
//如果第一个文件遇到换行符则打印第二个文件内容,反之一样(a)交替打印俩个文件的每一行。
//利用文件指针的特性自动递增的特点
do
{
while((ch=getc(fp))!=EOF)
{
putchar(ch);
if(ch==’\n’)
break;
}
while((ca=getc(fc))!=EOF)
{
putchar(ca);
if(ca=='\n')
break;
}
}while(ch!=EOF && ca!=EOF);
//收尾工作
if(fclose(fp)!=0||fclose(fc)!=0)
fprintf(stderr, “没有关闭打开的文件。\n”);
return 0;
}
//修改程序把行号相同的打印到同一行
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char * argv[])
{
int ch;
int ca=0;
FILE *fp, *fc;
//分别打开俩个文件
if((fp=fopen(argv[1],“r”))==NULL)
{
fprintf(stderr,“无法打开文件(%s).\n”,argv[1]);
exit(EXIT_FAILURE);
}
if((fc=fopen(argv[2],“r”))==NULL)
{
fprintf(stderr, “无法打开文件(%s).\n”,argv[2]);
exit(2);
}
//利用文件指针的特性自动递增的特点
do
{
ca=0;
while((ch=getc(fp))!=EOF)
{
if(ch=='\n')
{
ca=ch;
ch=' ';
}
putchar(ch);
if(ch==' '&&ca=='\n')
break;
}
while((ca=getc(fc))!=EOF)
{
putchar(ca);
if(ca=='\n')
break;
}
}while(ch!=EOF && ca!=EOF);
//收尾工作
if(fclose(fp)!=0||fclose(fc)!=0)
fprintf(stderr, "没有关闭打开的文件。\n");
return 0;
}