|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2007
Messaggi: 1
|
[C++] Scrittura su file e serializzazione
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 |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
Prova a usare:
Codice:
ULONG I = 1234567;
std::fstream File("file.bin", std::ios::binary | std::ios::out);
File.write((char*)&I,4);
Ultima modifica di stdecden : 09-09-2007 alle 08:37. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
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. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:31.



















