私は2つのテキストファイルtest1.txtとtest2.txtを持っています。それぞれに複数の文字列があります。同じものか違うものかを比較して印刷したいと思います。 次のように私のコードは次のとおりです。cの別のテキストファイルの文字列を比較します
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char temp[100];
char const *t1;
char const *t2;
FILE *fp1=fopen("test1.txt","r");
while((t1=fgets(temp,sizeof(temp),fp1))!=NULL){
FILE *fp2=fopen("test2.txt","r");
while((t2=fgets(temp,sizeof(temp),fp2))!=NULL){
if(strcmp(t1,t2)==0){
printf("same\n");
}
else{
printf("Differ\n");
}
}
fclose(fp2);
}
fclose(fp1);
}
とテキストファイルtest1.txtという:
100100001
1111
test2.txtという名前:
10101001
1001
上記のコードは次のような出力が得られます。
same
same
same
same
どちらが間違っているのですか?
私はここで間違っていますか?それを修正するには?
UPDATE
私は、コードを修正しました。次のコードは正常に動作しますが、よりよい解決策が存在するなら、私に教えてください:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char temp1[100];
char temp2[100];
char const *t1;
char const *t2;
FILE *fp1=fopen("test1.txt","r");
while((t1=fgets(temp1,sizeof(temp1),fp1))!=NULL){
FILE *fp2=fopen("test2.txt","r");
while((t2=fgets(temp2,sizeof(temp2),fp2))!=NULL){
if(strcmp(t1,t2)==0){
printf("same\n");
}
else{
printf("Differ\n");
}
}
fclose(fp2);
}
fclose(fp1);
}
f1からtempまでの行を読み込みます。次に、f2からtempに行を読み込みます。次に、tempとtempに同じ文字列が含まれているかどうかをチェックします。同じ文字列であるため、明らかに同じ文字列が含まれています。 – immibis
はい、私はそれを実現し、コード(更新)を変更しました。 – husna