Ich habe zwei Textdateien test1.txt und test2.txt. Jeder von ihnen hat mehrere Zeichenfolgen. Ich möchte sie vergleichen und ausdrucken, wenn sie gleich oder verschieden sind. Mein Code ist wie folgt:Vergleichen Sie Zeichenfolgen aus verschiedenen Textdateien in 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);
}
Und Textdatei test1.txt:
100100001
1111
test2.txt:
10101001
1001
Der obige Code erwähnt gibt die folgende Ausgabe:
same
same
same
same
Das ist eindeutig falsch!
Was mache ich hier falsch? Wie man es repariert?
UPDATE
ich den Code festgelegt. Der folgende Code funktioniert gut, aber lassen Sie mich bitte wissen, ob eine bessere Lösung existiert:
#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);
}
Sie lesen eine Zeile von f1 nach temp. Dann liest du eine Zeile von f2 nach temp. Dann überprüfen Sie, ob temp und temp die gleiche Zeichenfolge enthalten, was sie natürlich tun, weil sie dieselbe Variable sind. – immibis
Ja, ich habe es gerade erkannt und den Code geändert (update). – husna