已有两个文本文件,今要求编程序从这两个文件中读出各行字符,逐个比较这两个文件中相应的行和列上的字符,如果遇到互不相同的字符,输出它是第几行第几列的字符
该题目主要考察文本文件字符的判断问题
代码
#include<stdio.h>
#include<conio.h>
void main()
{
FILE *fpa,*fpb;
char cha,chb;
int linea,lineb,a,b;
linea=lineb=1;
a=b=0;
if((fpa=fopen("a.txt","r"))==NULL)
{
printf("can't open file!");
exit(1);
}
if((fpb=fopen("b.txt","r"))==NULL)
{
printf("can't open file!");
exit(1);
}
printf("文件a\t\t文件b\n");
cha=fgetc(fpa);
chb=fgetc(fpb);
while(!feof(fpa) &&!feof(fpb)) //ch==EOF用来判断是否是文件结束符
{
a++;
b++;
if(cha==10)
{
linea++;a=0;
while(chb!=10)
chb=fgetc(fpb);
lineb++;b=0;
}
else if(chb==10)
{
lineb++;b=0;
while(cha!=10)
cha=fgetc(fpa);
linea++;a=0;
}
else
{
if(cha!=chb)
printf("第%d行第%d列%c\t第%d行第%d列%c\n",linea,a,cha,lineb,b,chb);
}
cha=fgetc(fpa);
chb=fgetc(fpb);
}
fclose(fpa);
fclose(fpb);
getch();
}