练习 7-6 编写一个程序,比较两个文件并打印它们第一个不相同的行

来源:互联网 发布:数据库删除语句怎么写 编辑:程序博客网 时间:2024/06/01 03:58
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


#define MAXNAME 1000


int main(int argc,char **argv)
{
   FILE *fp,*fp2;
   char fname1[MAXNAME],fname2[MAXNAME];
   int i = 1;


   if(argc == 1){
      printf("Please enter two need to compare file name:\n");
 scanf("%s %s",fname1,fname2);
      if((fp = fopen(fname1,"r")) == NULL || (fp2 = fopen(fname2,"r")) == NULL){
    fprintf(stderr,"File open fail!\n",(fp == NULL) ? fname1 : fname2);
exit(1);
 }
   }else
      if((fp = fopen(argv[1],"r")) == NULL || (fp2 = fopen(argv[2],"r")) == NULL){
    fprintf(stderr,"%s File open fail\n",(fp == NULL) ? argv[1] : argv[2]);
    exit(1);
 }
    while(fgets(fname1,MAXNAME,fp) && fgets(fname2,MAXNAME,fp2))
       if(strcmp(fname1,fname2) == 0){
          i++;
          continue;
       }
  else{
     fputs(fname1,stdout);
     fputs(fname2,stdout);
     break;
  }
    printf("line: %d\n",i);
if(ferror(fp) || ferror(fp2)){
       fprintf(stderr,"error writing stdout\n");
       exit(2);
    }


    exit(0);
}

阅读全文
0 0
原创粉丝点击