程序改写如下,已编译通过:
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE * f1 = fopen("dd.txt","r")/* 改为实际文件名 */
FILE * f2 = fopen("bb.txt","r")
char c1 = fgetc(f1)
char c2 = fgetc(f2)
while(!feof(f1) &&!feof(f2)){
if(c1 != c2){printf("NO")system("pause")return 0}
c1 = fgetc(f1)
c2 = fgetc(f2)
}
if(c1==EOF&&c2==EOF) /* 判断两个文件是否都到结尾 */
printf("YES")
else
printf("NO")
printf("\n")
fclose(f1)
fclose(f2)
system("pause")
return 0
}
先读取第一个文件, 将所有人的名单存在一个字符串数组中。
然后读另一个文件,到第一个数组中去查找,如果文件没错的话,那么每个都应该找到。
删掉找到的。
最后输出剩下的。
#include <stdio.h>#include <string.h>
#define MAXLEN 257
void CompareFile(FILE *fa,FILE *fb,FILE *flog) {
char sa[MAXLEN],sb[MAXLEN],flag
while(!feof(fa)) {
fgets(sa,MAXLEN,fa)
flag = 1
while(!feof(fb)) {
fgets(sb,MAXLEN,fb)
if(strcmp(sa,sb) == 0) {
flag = 0
break
}
}
if(flag) fputs(sa,flog)
rewind(fb)
}
}
int main() {
FILE *fa,*fb,*flog
fa = fopen("a.txt","rt")
fb = fopen("b.txt","rt")
flog = fopen("log.txt","wt")
if(fa == NULL || fb == NULL || flog == NULL) {
printf("打开文件失败。\n")
return 1
}
CompareFile(fa,fb,flog)
rewind(fa)
rewind(fb)
CompareFile(fb,fa,flog)
fclose(fa)
fclose(fb)
fclose(flog)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)