Új hozzászólás Aktív témák

  • kiskatus

    csendes tag

    Kedves Fire!
    Elvittem az általad megírt programot és nem fogadta el, mert az fseek pozicionálást és az ftell-t még nem tanultuk. Azt mondta, hogy rewind-el kell megoldani. Tudnál segíteni benne?

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    unsigned long ErrorCounter;
    unsigned char chFirst, chSecond;
    FILE * Szoveg1;
    FILE * Szoveg2;
    FILE * Kimenet;

    printf("Binaris osszehasonlitas\n\n");

    if (!(Szoveg1 = fopen("first.txt","rb"))) {
    fprintf(stderr,"Nem lehet megnyitni a 'first.txt' fajlt...\n");
    getchar();
    exit(-1);
    }

    if (!(Szoveg2 = fopen("second.txt","rb"))) {
    fprintf(stderr,"Nem lehet megnyitni a 'second.txt' fajlt...\n");
    fclose(Szoveg1);
    getchar();
    exit(-1);
    }
    fseek(Szoveg1,0,SEEK_END);
    fseek(Szoveg2,0,SEEK_END);
    if (ftell(Szoveg1)!=ftell(Szoveg2)) {
    printf("A két fájl mérete nem azonos...\n");
    fclose(Szoveg1);
    fclose(Szoveg2);
    getchar();
    exit(-1);
    }
    if (!ftell(Szoveg1)) {
    printf("A fajlok merete nem lehet 0 byte...");
    fclose(Szoveg1);
    fclose(Szoveg2);
    getchar();
    exit(-1);
    }
    fseek(Szoveg1,0,SEEK_SET);
    fseek(Szoveg2,0,SEEK_SET);
    if (!(Kimenet = fopen("error.txt","wt"))) {
    fprintf(stderr,"Nem lehet megnyitni az 'error.txt' fajlt...\n");
    fclose(Szoveg1);
    fclose(Szoveg2);
    getchar();
    exit(-1);
    }
    ErrorCounter=0;
    while (fread(&chFirst,1,1,Szoveg1)==1) {
    fread(&chSecond,1,1,Szoveg2);
    if (chFirst!=chSecond) {
    fprintf(Kimenet,"File-pozicio: %#.8lx %#.2x <> %#.2x\n",ftell(Szoveg1),chFirst,chSecond);
    ErrorCounter++;
    }
    }
    if (ErrorCounter) printf("%lu elteres talalhato a ket fajl kozt.\nNezze meg az 'error.txt' fajl tartalmat...\n",ErrorCounter);
    else printf("A ket fajl azonos...\n");

    fclose(Szoveg1);
    fclose(Szoveg2);
    fclose(Kimenet);

    system("pause");

    return 0;
    }

Új hozzászólás Aktív témák