Клен (Swing)
должен был работать много с Кленом на прошлой неделе. Это - такой хороший и мощный инструмент, я сначала не мог полагать, что это было разработано с Swing и Java :)
Well, just use characters, not integers.
s << char(1) << char(2) << char(3);
Для чтения и записи двоичных данных в потоки, включая строковые потоки, используйте функции-члены read () и write (). Итак,
unsigned char a(1), b(2), c(3), d(4);
std::stringstream s;
s.write(reinterpret_cast<const char*>(&a), sizeof(unsigned char));
s.write(reinterpret_cast<const char*>(&b), sizeof(unsigned char));
s.write(reinterpret_cast<const char*>(&c), sizeof(unsigned char));
s.write(reinterpret_cast<const char*>(&d), sizeof(unsigned char));
s.read(reinterpret_cast<char*>(&v), sizeof(unsigned int));
std::cout << std::hex << v << "\n";
Это дает 0x4030201
в моей системе.
Изменить: Чтобы сделать эту работу прозрачной с операторами вставки и извлечения (<< и >>), лучше всего создать производный streambuf, который делает правильные вещи, и передать его любым потокам, которые вы хотите использовать.