Thread View: pl.comp.lang.c
2 messages
2 total messages
Started by Krzysztof Za³êski
Tue, 09 Dec 1997 09:55
Dziwne dzialanie fwrite
Author: Krzysztof Za³êski
Date: Tue, 09 Dec 1997 09:55
Date: Tue, 09 Dec 1997 09:55
39 lines
1544 bytes
1544 bytes
Witam,
Mam pewien dziwny problem z ktorym nie moge sobie poradzic. Otoz mam
strukture powiedzmy:
struct DANE{
char[10] nazwisko;
char[10] imie;
};
I mam sobie liste dwukierunkowa skladajaca sie z rekordow:
struct REK{
REK *poprz;
DANE DaneOs;
REK *nast;
};
Jest tez strukrura z informacja o stanie listy:
struct STAN{
REK *pierwszy;
REK *aktualny;
REK *ostatni;
} StanAkt;
Tworzac rekord (przez Rek = new REK) wpisuje sobie dane do DaneOs.
Nastepnie mam funkcje ktora zczytuje DaneOs ze wszyskich rekordow i
zapisuje do pliku (taki sobie Save).
Zapisuje przez (i tu nie jestem pewien czy robie dobrze):
fwrite(&(StanAkt.aktualny->DaneOs), sizeof(DANE), 1, ffile)
Problem jest w tym, ze do pliku (otwartego przez w+b) nie zapisywana
jest wielkosc sizeof(DANE) tylko mniejsza. Jezeli wypelniam nazwisko
5-ma znakami to on zapisuje tylko te 5 znakow a nie cala dlugosc pola,
czyli 10. Czy ktos moze mi wskazac co robie zle... z gory dzieki.
Krzysztof
Re: Dziwne dzialanie fwrite
Author: Stanislaw Sidor
Date: Thu, 11 Dec 1997 20:47
Date: Thu, 11 Dec 1997 20:47
18 lines
1168 bytes
1168 bytes
[...]
> Problem jest w tym, ze do pliku (otwartego przez w+b) nie zapisywana
> jest wielkosc sizeof(DANE) tylko mniejsza. Jezeli wypelniam nazwisko
> 5-ma znakami to on zapisuje tylko te 5 znakow a nie cala dlugosc pola,
> czyli 10. Czy ktos moze mi wskazac co robie zle... z gory dzieki.
>
> Krzysztof
Sprawa godna zbadania...
Zawsze mozesz:
int fd=open("nazwa_pliku",O_WRONLY|O_BINARY);
write(fd,&(void*)struktura,(unsigned)rozmiar);
fwrite to archaizm (write zreszta tez).
Jwsli piszesz pod C++ to poczytaj o strumieniach I/O
(STS)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads