Di solito uso stringstream
per scrivere nella stringa in memoria. C'è un modo per scrivere su un buffer di char in modalità binaria? Si consideri il seguente codice:Ci sono flussi di memoria binari in C++
stringstream s;
s << 1 << 2 << 3;
const char* ch = s.str().c_str();
La memoria a ch
sarà simile a questa: 0x313233 - i codici ASCII dei caratteri 1, 2 e 3. Sto cercando un modo per scrivere i valori binari stessi. Cioè, voglio 0x010203 nella memoria. Il problema è che voglio essere in grado di scrivere una funzione
void f(ostream& os)
{
os << 1 << 2 << 3;
}
E decidere al di fuori che tipo di flusso da utilizzare. Qualcosa del genere:
mycharstream c;
c << 1 << 2 << 3; // c.data == 0x313233;
mybinstream b;
b << 1 << 2 << 3; // b.data == 0x010203;
Qualche idea?
Questo è esadecimale, non binario. Perché non puoi scrivere 0x01, 0x02, ecc., Anche se ... quelli sono veri caratteri ASCII, dopo tutto. – jrockway
Vuole che il contenuto della memoria (i byte effettivi) sia 0x010203 (66051 decimale), non la stringa "0x010203". – KeithB
Ho modificato la domanda. Spero che ora sia più chiaro. – FireAphis