#include <stdio.h>
#include <stdlib.h>
void filecomp(FILE *fp1, FILE *fp2)
{
int c;
while((c = getc(fp1)) == getc(fp2) && c != EOF)
;
if(c != EOF)//byly roznice
{
putc(c, fp1);
}
}
int main(void)
{
FILE *fp[2];
char *tab[] = {
"nazwa1.txt",
"nazwa2.txt"
};
if((*fp = fopen(*tab, "r")) == NULL)
{
//printf("%s\n", *tab);
exit(1);
}
if((*(fp + 1) = fopen(*(tab+1), "r")) == NULL)
{
exit(2);
}
filecomp(*fp, *(fp+1));
fclose(*fp);
fclose(fp+1);
return 0;
}
Jak zawsze problem ze wskaznikami, fopen zwraca NULL, co robię nie właściwie ?
Program ma za zadanie porownywac dwa pliki i wypisywac pierwszy wiersz ktory nie jest identyczny
#include <stdio.h>
#include <stdlib.h>
void filecomp(FILE *fp1, FILE *fp2)
{
int c;
while((c = getc(fp1)) == getc(fp2) && c != EOF)
;
if(c != EOF)//byly roznice
{
putc(c, stdout);
while((c = getc(fp1))!= EOF)
putc(c, stdout);
}
}
int main(void)
{
FILE *fp[2];
char *tab[] = {
"zzzz.txt",
"yyyy.txt"
};
if((*fp = fopen(*tab, "r")) == NULL)
{
exit(1);
}
if((*(fp + 1) = fopen(*(tab+1), "r")) == NULL)
{
exit(2);
}
filecomp(*fp, *(fp+1));
fclose(*fp);
fclose(*(fp+1));
return 0;
}
wyniki poprawne, chyba udalo sie poprawic