/*编写一个比较两个文件的程序,要求显示两个文件中不相同的行的行号以及该行中不相同的字符的开始位置。*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int dif(char*a, char *b);
main(int argc, char *argv[])
{
char ch1[250], ch2[250];
FILE *fp1, *fp2;
int fg = 0, n = 0;
if (argc == 1 && argc == 2)
printf("usage:no linenum filename\n");
else if (argc > 3)
printf("Too many arguments linenum\n");
else if((fp1=fopen(argv[1], "r"))==NULL)//打开文件,请注意打开的方式
{
printf("can't open %s\n",argv[1]);
return;
}
else if((fp2=fopen(argv[2], "r"))==NULL)//打开文件,请注意打开的方式
{
printf("can't open %s\n",argv[2]);
return;
}
else
{
while (!feof(fp1) && !feof(fp2))
{
fgets(ch1, 250, fp1);
fgets(ch2, 250, fp2);
++n;
if (strcmp(ch1, ch2))
{
printf("%d lines %d postion is different\n", n, dif(ch1, ch2));
fg = 1;
}
}
if (!fg)
printf("They are same.\n");
fclose(fp1);
fclose(fp2);
}
system("pause");
}
int dif(char*a, char *b)
{
int i = 0;
while (a[i] == b[i])
i++;
return i+1;
}
黄迪明9.8
最新推荐文章于 2019-03-20 10:07:54 发布