c++ variante fread



  • hi,
    ich habe mir ein programm geschrieben bei dem ich auf dateien zugreife.
    diese dateizugriffe habe ich ursprünglich mit funktionen wie fopen oder fread
    realisiert, nur habe ich mich nun dazu entschlossen das ganze c++ konform mit ifstreams umzuschreiben.
    dabei bin ich aber an ein problem gestossen:
    ich würde gerne ein paar bytes aus der datei in eine struktur speichern.
    bisher ging das immer ganz gut mit fread:

    fread(&struktur, sizeof(STRUKTUR), 1, datei);
    

    natürlich kann ich fread nun nicht mehr nutzen und suche nach einer alternative mit der ich dieses problem lösen könnte

    ich habe mir bereits ifstream::read angeschaut, allerdings kann ich damit nur strings einlesen

    kennt jemand eine c++ alternative zu fread bzw zur lösung meines problems?



  • Wieso sollte das nicht mit ifstream::read funktionieren? Die Methode liest keine C++ sondern C-Strings aus, und das sind nur char-Arrays. Du müsstest vielleicht den Zeiger nach char* casten, C++ ist mit sowas pingelig (könnte aber auch so funktionieren):

    datei.read (static_cast<char*> (&struktur), sizeof (STRUKTUR));
    

Log in to reply