argv[2]="c:\\compare\\t1.txt";
argv[3]="c:\\compare\\t2.txt";
Das vergiss mal schnell wieder.
feof liefert erst nach Aufruf einer Leseaktion definiertes Verhalten.
Dein i und ii habe ich nicht verstanden.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXSTRING 81
char *ersetze_zeichen(char *s1,char *string2)
{
char *s2=string2;
for( ;*s1;++s1 )
if( *s1!=' ' ) *s2++=*s1;
*s2=0;
return string2;
}
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(EXIT_FAILURE);
}
while( fgets(compare1,MAXSTRING,d1_ptr) && fgets(compare2,MAXSTRING,d2_ptr) )
{
/* Löschen von evtl. vorhandenem '\n' da für den Vergleich hinderlich! */
if( strchr(compare1,'\n') ) *strchr(compare1,'\n')=0;
if( strchr(compare2,'\n') ) *strchr(compare2,'\n')=0;
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);
}
}
}