Zapis do pliku nadmiarowych bajtów

0

Witam, oto kod:
http://wklej.org/id/594596/

W czym rzecz: w wyjściowym pliku powinno być 16 bajtów, jest 17. Nadmiarowy bajt zidentyfikowałem w WinHex, jest to bajt wytłuszczony:

00000000 0D 09 05 01 0E 0D 0A 06 02 0F 0B 07 03 10 0C 08
00000010 04

Tablica destTab zawiera 16 pozycji niezerowych i tyle razy wykonuje się ostatni for.

0D czyli 13 w dziesiętnym powinno się pojawić w wyjściowym pliku tylko raz, na początku.

Pytanie: skąd się bierze nadmiarowy bajt w wyjściowym pliku i jak temu zapobiec?

2
Leogict napisał(a)

00000000 0D 09 05 01 0E 0D 0A 06 02 0F 0B 07 03 10 0C 08
00000010 04

Tablica destTab zawiera 16 pozycji niezerowych i tyle razy wykonuje się ostatni for.

0D czyli 13 w dziesiętnym powinno się pojawić w wyjściowym pliku tylko raz, na początku.

Windows? 0x0D0A to newline w tym systemie. Pewnie otwierasz plik do zapisu w trybie tekstowym i kiedy w danych pojawia się 0x0A, doklejany jest 0x0D. Otwórz plik do zapisu w trybie binarnym.

0

Hmmm... Tak właściwie, to w tym przypadku powinieneś także odczytywać plik w trybie binarnym, gdyż jeśli w danych wejściowych będzie sekwencja liczb 13 10, ta pechowa zostanie odrzucona przy odczycie. Dobrze jest się trzymać zasady: zapisujemy binarki, otwieramy pliki w trybie binarnym.

0

Dzięki Panowie za pomoc.

0

Dobrze jest się trzymać zasady: zapisujemy binarki, otwieramy pliki w trybie binarnym.

ja bym powiedział, że pliki binarne niech będą binarnymi, a tekstowe - tekstowymi. przy takim podejściu nie trzeba się nigdy przejmować żadnymi 13 10.

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