Hoffe, dass ich im richtigen Forum gelandet bin...
Möchte gerne zwei Dateien öffnen und vergleichen.
Die Dateien werden auch geöffnet. Nicht wundern ich habe mir die eingelesenen Strings ausgeben lassen, um herauszufinden was strcmp() überhaupt vergleicht.
Jetzt meine Fragen:
1. Warum wird die while-Schleife nicht richtig ausgewertet? (compare wird viermal ausgeführt, obwohl es nur jeweils zwei Zeilen in den beiden .txt-Dateien gibt)
2. Warum gibt fgets() zwei Mal so einen kryptischen String aus?
Konsole:
Code:
Möchte gerne zwei Dateien öffnen und vergleichen.
Die Dateien werden auch geöffnet. Nicht wundern ich habe mir die eingelesenen Strings ausgeben lassen, um herauszufinden was strcmp() überhaupt vergleicht.
Jetzt meine Fragen:
1. Warum wird die while-Schleife nicht richtig ausgewertet? (compare wird viermal ausgeführt, obwohl es nur jeweils zwei Zeilen in den beiden .txt-Dateien gibt)
2. Warum gibt fgets() zwei Mal so einen kryptischen String aus?
Konsole:
Code:
Unterschiedliche Datensaetze Satz1: Dies ist der erste Satz.Dies ist der erste Satz.Dies ist der erste Satz. Satz2: (ç a*]ì axì a�ÕÍ" Unterschiedliche Datensaetze Satz1: Dies ist der erste Satz.Dies ist der erste Satz.Dies ist der erste Satz. Satz2: (ç a*]ì axì a�ÕÍ" Unterschiedliche Datensaetze Satz1: Dies ist der erste Satz.Dies ist der erste Satz.Dies ist der erste Satz. Satz2: Dies ist der erste Satz.Dies ist der erste Satz.Dies ist der erste Satz. Identische Datensaetze Satz1: Dies ist der erste Satz.Dies ist der erste Satz.Dies ist der erste Satz. Satz2: Dies ist der erste Satz.Dies ist der erste Satz.Dies ist der erste Satz.
Code:
#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXSTRING 81 /* * */ int main() { FILE *d1_ptr, *d2_ptr; char compare1[MAXSTRING], compare2[MAXSTRING]; if((d1_ptr=fopen("c:\\compare\\t1.txt","r"))==NULL || (d2_ptr=fopen("c:\\compare\\t2.txt","r"))==NULL) { perror("Fehler beim öffnen der Datei"); exit(2); } else { while (fgets(compare1, MAXSTRING, d1_ptr)!=NULL || fgets(compare2, MAXSTRING, d2_ptr)!=NULL) { if ((strcmp(compare1, compare2))==0) { printf("Identische Datensaetze"); printf("\nSatz1: %s \nSatz2: %s\n", &compare1, &compare2); } else { printf("Unterschiedliche Datensaetze"); printf("\nSatz1: %s \nSatz2: %s\n", &compare1, &compare2); } } }
Comment