Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

c++ zapis i wczytanie z pliku tablicy

Ostatnio zmodyfikowano 2014-10-26 14:50
Autor Wiadomość
Teilor
Temat założony przez niniejszego użytkownika
c++ zapis i wczytanie z pliku tablicy
» 2014-10-26 12:56:37
Pisze z następującym problemem. Dlaczego nie działą zapis i odczyt do pliku tabeli?
Posiadam strukture w niej kilka pól i deklaruje w main() tablice:
np. struktura tab[100];
Posiadam następujace funkcje:
(s - tablica struktur , n - ilosc elementow tablicy , a[] - nazwa pliku)
Po zapisaniu uruchamiam program ponownie wczytuje funcją dane ale nie wczytyją się.

 
C/C++
void zapisz( struktura tab[], int n, char a[] )
{
    FILE * plik;
    if(( plik = fopen( a, "w" ) ) == NULL )
         cout << "Nie da sie otworzyc" << endl;
   
    fwrite( & n, sizeof( n ), 1, plik );
   
    for( int i = 0; i < n; i++ )
         fwrite( & tab[ i ], sizeof( tab[ i ] ), 1, plik );
   
    fclose( plik );
   
}



void wczytaj( struktura tab[], int n, char a[] )
{
    FILE * plik;
    plik = fopen( a, "r" );
   
    fread( & n, sizeof( n ), 1, plik );
    for( int i = 0; i < n; i++ )
    {
        fread( & tab[ i ], sizeof( tab[ i ] ), 1, plik );
       
    }
    fclose( plik );
}
 
Oczywiście próbowałem inne rozwiązania

plik.open( nazwa, std::ios::in | std::ios::out );
ale również nie śmiga.
Z góry dziękuję za każdą pomoc.
[/i]
P-119434
Monika90
» 2014-10-26 14:40:09
Powinieneś otwierać plik w trybie binarnym. Pokaż także co jest w tej strukturze.

I sformatuj prawidłowo swój post, bo jest zupełnie nieczytelny. Wskazówki tutaj: http://cpp0x.pl/kursy/Kurs-STC​/169
P-119441
Teilor
Temat założony przez niniejszego użytkownika
» 2014-10-26 14:50:59
C/C++
struct struktura
{
    unsigned int id;
    char imie[ 10 ];
    char nazwisko[ 20 ];
    char plec;
    long int pesel;
    char miasto[ 20 ];
    char funkcja[ 20 ];
};
 

Odkryłem, że sama funkcja zapisz działa, jedynie wczytaj nie. jeśli w wczytaj dodam couty wypisujące zawartość tab[], to wypisuje, ale po za funkcją po jej użyciu już nie :/
P-119443
« 1 »
  Strona 1 z 1