odczyt z pliku binarnego

0

Witam mam pewien problem
Piszę programik zapisujący i odczytujący dane z pliku binarnego. Zapisuje do pliku tablicę:
funkcja {
string tab[4];
tab[0] = "mat - 88\n";
tab[1] = "rei - 66\n";
tab[2] = "bu - 66\n";
tab[3] = "wuy - 7\n";

FILE *plik;    
plik=fopen("dane.dat","wb");  
fwrite(tab, sizeof(tab), 4, plik);

fclose(plik);

}
Potem chcę odczytać to co zapisałem w tym pliku i przypisać jedną wartość zmiennej:
inna funkcja {
string tekst;
string tab[4];

FILE *plik2;
plik2=fopen("dane.dat","rb");  
fread(tab,  sizeof(tab), 4, plik2);
fclose(plik2);
tekst=tab[2];

}

W miejscu przypisania zmiennej wartości z tablicy otrzymuję błąd:
Unhandled exception at 0xcccccccc in warsztat.exe: 0xC0000005: Access violation reading location 0xcccccccc.

dlaczego?

0
okularnik napisał(a)

Witam mam pewien problem
Piszę programik zapisujący i odczytujący dane z pliku binarnego. Zapisuje do pliku tablicę:
funkcja {
string tab[4];
tab[0] = "mat - 88\n";
tab[1] = "rei - 66\n";
tab[2] = "bu - 66\n";
tab[3] = "wuy - 7\n";

FILE *plik;
plik=fopen("dane.dat","wb");
fwrite(tab, sizeof(tab), 4, plik);

fclose(plik);

...

dlaczego?

Ponieważ to nie Pascal :-P - tutaj musisz zapisać wszystkie elementy tablicy w pętli ;-) Zapisując w ten sposób zapisujesz do pliku tylko wskaźnik do pierwszego elementu - analogicznie odczyt musisz wykonać w pętli dla każdego elementu.

Pozdrawiam!

PS. Na przyszłość używaj znaczników < cpp > < /cpp > (bez tych spacji) w postach - to naprawdę ułatwia analizowanie kodu.

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