首页 > 试题广场 >

编写一个程序,比较两个文件,并输出两个文件首次出现不同内容的

[问答题]
编写一个程序,比较两个文件,并输出两个文件首次出现不同内容的所在行。

推荐
用户先输入两文件明,打开它们,同步读取一个一个字符并进行比较,当遇到'\n'时行计数器line增1.程序如下:
#include <stdio.h>
void main()
{
    FILE * fp1 * fp2;
    char fname1[20],fname[20];
    int line=1;count=1;
    char c1,c2;
    printf("输入两个文件名:");
    scanf("%s%s",fname1,fname2);
    if ((fp1=fopen(fname1,"r"))==NULL)
    {    printf("%s文件不存在\n",fname1);
       return;
    }
    if ((fp2=fopen(fname2,"r"))=NULL)
    {    printf("%s文件不存在\n",fname2);
       return;
    }
    while ((c1=getc(fp1))!=EOF)
    {    c2=getc(fp2);
        if (c1==c2)
            count++;
        else
            break;                /*对应位置的字符不同时退出*/
        if (c1== '\n')
            line++;
    }
    printf("%s和%s两文件比较结果:\n",fname1,fname2);
    if (c1==EOF)
        printf("    完全相同\n");
    else
        printf("    不同,不同行号:%d不同字符号:=%d\n",line,count);
    fclose(fp1);
    fclose(fp2);
}

发表于 2018-05-07 21:09:46 回复(0)