Struktura v c++

Sekcia: Programovanie 11.04.2010 | 18:50
Matrixko   Návštevník
Zdravim, mam takyto mensi problem. Robim jeden program do skoly, je to lin. zretazeny zoznam v c++ a mam spravenu strkuturu vypadajucu asi takto:
class zoznam
{
private:

struct prvok
{
string meno, priezvisko;
int vek;
int goly;
prvok *nasl;
}*p;
Potreboval, by som tu strukturu prvok ulozit do suboru (a potom to z neho aj nacitat spat). Cez fwrite mi to neslo, zapisovalo mi to len adresu. Pozeral som nieco o vstypno vystupnych prudoch ale tomu prd rozumiem. Da sa to nejako (naj. total jednoducho) pekne ulozit do suboru? prip. nejaky link kde je to dobre popisane? dik...
    • Re: Struktura v c++ 12.04.2010 | 00:16
      Dizie   Návštevník
      http://www.builder.cz/art/cpp/cpp_neformat_io.html
    • Re: Struktura v c++ 12.04.2010 | 15:40
      Avatar Lapajko Arch Linux  Používateľ
      Potrebuješ serializáciu a deserializáciu. Do súboru musíš uložiť každý element štruktúry osobitne.

      Na tvojom mieste by som preťažil operátor << a >>. Good luck
      • Re: Struktura v c++ 12.04.2010 | 20:17
        Avatar usamec   Používateľ
        nic take nepotrebuje, staci inteligentne pouzit fwrite.
        • Re: Struktura v c++ 12.04.2010 | 23:29
          Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
          Problem je, ze aj ked dumpne celu strukturu na disk, tak pri nacitani moze pohoriet, ak sa niekedy v buducnosti kompilator kvoli nejakej optimalizacii rozhodne inak zarovnat polozky alebo dalsich tisic moznosti. Tiez som to kedysi za mlada tak robil, az kym som si neuvedomil, ze to je strasna hlupost. Sice, na skolsky projekt to asi staci, ale naco sa ucit taketo zlozvyky?
          Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
          • Re: Struktura v c++ 13.04.2010 | 18:21
            Matrixko   Návštevník
            Spravil som to cez fstream, a nacitanie este dorobim... Je to hlupost teda zapisovat tu strukturu po castiach, ako by to bolo teda najlepsie robit?
            • Re: Struktura v c++ 13.04.2010 | 19:13
              Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
              Praveze nie je hlupost to zapisovat po castiach. Hlupost je zapisovat celu strukturu ako celok. Uvediem priklad v klasickom C:
              typedef struct{
                int blabla;
                char bleble[100];
              }STR;
              
              STR str;
              str.blabla=3;
              memcpy(str.bleble,"ahoj");
              
              FILE *s=fopen("subor.bin","wb");
              fwrite(&str,sizeof(STR),1,s);
              fclose(s);
              
              TOTO NIKDY NEROBTE!!!
              Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
        • Re: Struktura v c++ 13.04.2010 | 11:16
          Avatar Lapajko Arch Linux  Používateľ
          Ano, to je presne to, co som mal na mysli.
          Ale ked to uz pise v C++, tak by mal pouzit fstream.
    • Re: Struktura v c++ 12.04.2010 | 23:12
      martin   Návštevník
      Poviem ti pravdu...musis do toho vlozit trosku inteligencie...
      Zapisovat pointer do suboru je zbytocnost, pretoze adresy budu pri dalsom spusteni programu uplne ine, a pokial si to neuvedomis, tak si len narobis problemy.