Co wzraca fscanf() ???

0

Ja jestem początkujący stąd takie banalne pytanie . Problem polega na tym że chce zapisywać dane z 1 pliku do drugiego aż skończy sie ten pierwszy plik , bajt po bajcie , używając fscanf , więc robie tak aż fscanf będzie mniejsze od ZERO , ale czasami przy nietypowych przeczytanych znakach fscanf() wzraca -1 ??? Jak można rozwiązać ten problem ???

0

problem ten jest taki, gdyż, funkcja fscanf() absolutnie nie nadaje sie do tego typu operacji. Spojrz na to:

#include &ltstdio.h&gt
main()
{
FILE *wej;
FILe *wyj;
char znak;

wej=fopen("a:\\jeden.exe","rb");
wyj=fopen("a:\\dwa.exe","wb");

while(!feof(wej))
{
znak=fgetc(wej);
fputc(znak,wyj);
}
fclose(wej);
fclose(wyj);
}

Jak widac, po pierwsze oba pliki otwieram w jako pliki binarne, co pozwala na skopiowanie dokladnie dowolnego pliku. Nastepnie petla while powtarza sie dopuki nie nastapi koniec pliku wejsciowego i wykonuje operacje takie jak - pobranie pojedynczego znaku, czyli 8 bitow z pliku wejsciowego, a nastepnie zapis tego samego bajtu do pliku wyjsciowego. Analogicznie funkcje fgetc oraz fputc.

0

dzięx

1 użytkowników online, w tym zalogowanych: 0, gości: 1