ho dei dati in una map (map.h). come posso metterli su file per poterli riaprire all'avvio successivo?
grazie, ciao!
ho dei dati in una map (map.h). come posso metterli su file per poterli riaprire all'avvio successivo?
grazie, ciao!
La prima cosa che mi viene in mente è l'uso di file di testo:
Ma ci sono altri mille modi per farlo.codice:char stringa[]="questa è solo una prova"; char newString[]="\0"; FILE *fi; fi=fopen("dati.txt","w+"); //w+ è aggiornamento.. porta il cursore alla fine del file. "r" legge, "w" scrive all'inizio. fprintf(fi,"Stringa= %s\n",stringa); //funziona come printf(); ma scrive nel file puntato da fi fscanf(fi,"Stringa= %s\n",&newString); //Funziona come scanf(); ma legge nel file puntato da fi pritnf("Ecco la stringa contenuta nel fine: %s",newString);
con le map?
io intendo
la stringa è un vec<string>, ma le map sono delle coppie di dati...codice:map<string,int> coso_da_salvare;
senza contare che non esiste una stringa di formato in stdio per le map che sono contennitori standard del c++
help!
Dovresti fare la cosidetta serializzazione di oggetti.
Non credo esista un metodo "gia' fatto" , per memorizzare e riprendere un container map (tra l altro generico).
Devi farti la tua bella classina con dei metodi write e read che manipolano la tua map.
Se cerchi su qualche source site ne trovi di queste cose.
Cmq non e' un lavoro cosi' esoso.
Con la potenza delle map , puoi anche farti una classina da usare come classe base per altre.
Magari definisci nella classe il tuo separatore tra una struttura e un altra e un sub-separatore tra oggetti delle struttura :
1-Homer
2-Marge
Questa puo' essere un esempio di mappa su file.
Poi leggi e trasferisci sulla tua mappa.