7、C语言比比两个文本文件的内容差异

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sxj731533730/article/details/84834351
#include <stdio.h>
#include <string.h>
#define MAXLEN 257
#define MAXLEN 257
void CompareFile(FILE *fa,FILE *fb,FILE *flog) {
char sa[MAXLEN],sb[MAXLEN],temp[MAXLEN],flag;
fgets(sa,MAXLEN,fa);
while(!feof(fa)&&!feof(fb)) {
fgets(sa,MAXLEN,fa);
 fgets(sb,MAXLEN,fb);
 
 if(strcmp(sa,sb) != 0) { 
 if(0==strcmp(sa,temp)) ; //消除重复数据 最后一行回车
else  {fputs(sa,flog);  fputs(sb,flog);}  strcpy(temp,sa);}
}
}
int  main( )
{
	FILE *fa,*fb,*flog;
fa = fopen("a.seg","rt"); //真实数据 存在第一行没用的数据
fb = fopen("b.seg","rt");
flog = fopen("log.txt","wt"); //at+
if(fa == NULL ) {
printf("actual seg 文件未找到。\n");
return 1;
}
if( fb == NULL ) {
printf("expect  seg文件未找到。\n");
return 1;
} 
CompareFile(fa,fb,flog);
fclose(fa);
fclose(fb);
fclose(flog);
return 0;	
}

文件a.seg 内容

;; 0.002698
3.65 4.21 0
4.54 7.14 1
9.89 10.63 1
13.43 16.11 1
16.49 17.26 0
17.45 18.10 0
18.14 18.90 0
19.73 20.46 1
20.71 21.46 0
22.04 22.18 0
22.94 24.70 1
25.37 25.84 0
25.88 27.94 0
28.64 30.88 1
31.11 32.05 1
33.28 33.67 0
33.71 34.03 0
34.16 34.48 0
34.52 35.17 0
36.29 37.72 1
44.35 46.90 1
47.48 48.55 0
48.62 49.39 1
50.32 51.04 0
51.35 52.30 1
53.23 53.62 1
53.92 54.79 1
54.83 56.55 1
56.79 57.43 1

文件b.seg 内容

3.65 4.21 0
4.54 7.14 1
9.89 10.63 1
13.43 16.11 1
16.49 17.26 0
17.45 18.10 0
18.14 18.90 0
19.73 20.46 1
20.71 21.46 0
22.04 22.18 0
22.94 24.70 1
25.37 25.84 0
25.88 27.94 0
28.64 30.88 1
31.11 32.05 1
33.28 33.67 0
33.71 34.03 0
34.16 34.48 0
34.52 35.17 0
36.29 37.72 1
44.35 46.90 1
47.48 48.55 0
48.62 49.39 1
50.32 51.04 0
51.35 52.30 1
53.23 53.62 0
53.92 54.79 1
54.83 56.55 1
56.79 57.43 0

基本题意是:(跳过a.seg的第一行无用数据,t目标要求),然后比对两个文件的不同数据,并且处理,先将不同行数据读出,存入一个临时文件,然后在处理;

猜你喜欢

转载自blog.csdn.net/sxj731533730/article/details/84834351