PDA

View Full Version : [C++] Scrittura su file e serializzazione


Watta
08-09-2007, 23:39
Salve,chiedo aiuto per un piccolo problema

devo scrivere su file una variabile di tipo long senza che venga scritta come carattere,mi spiego:
se uso semplicemente l'operatore << la variabile v (unsigned long v=10000000) viene scritta nel file come una stringa "10000000" e di conseguenza occuperà sul file 8 bytes (un byte per ogni carattere), mentre a me serve inserire nel file il valore 10000000 preso come unsigned long e quindi occupando solo 4 bytes che è la lunghezza standard del tipo unsigned long.
come si fa?


un'altra domanda:sto cercando di creare un programma che mi permette di creare un mio personale database e che quindi ho bisogno di salvare su disco.Per serializzare(deserializzare) i vari oggetti faccio uso degli stream di output(input).Esistono delle funzioni che mi premettono di serializzare gli oggetti come tali senza specificare in che modo devono essere scritti su file,mi spiego: in java ci sono funzioni che permettono di serializzare i vari oggetti e che una volta deserializzati possono essere castati come voglio.Esiste qualcosa del genere in c++?

grazie a tutti per l'attenzione

stdecden
09-09-2007, 07:32
Prova a usare:

ULONG I = 1234567;
std::fstream File("file.bin", std::ios::binary | std::ios::out);
File.write((char*)&I,4);

cionci
09-09-2007, 08:17
La serializzazione in C++ non esiste ;)
Gli operatori << e >> si usano per input/oputput testuali.
Per scrittura/lettura di dati binari si usano la ifstream::read e la ofstream::write con cui puoi andare a lavorare su strutture dati.
E' importante (se sei su Windows e comnque è buon uso per la portabilità del codice) andare ad aprire il file in binario, come scritto sopra.