Обычно я использую stringstream
для записи в строку в памяти. Есть ли способ записи в буфер символов в двоичном режиме? Рассмотрим следующий код:Есть ли двоичные потоки памяти в C++
stringstream s;
s << 1 << 2 << 3;
const char* ch = s.str().c_str();
Память на ch
будет выглядеть следующим образом: 0x313233 - в ASCII кодов символов 1, 2 и 3. Я ищу способ, чтобы написать сами двоичные значения. То есть, я хочу 0x010203 в памяти. Проблема в том, что я хочу, чтобы у меня была возможность написать функцию
void f(ostream& os)
{
os << 1 << 2 << 3;
}
И решить, какой поток использовать. Что-то вроде этого:
mycharstream c;
c << 1 << 2 << 3; // c.data == 0x313233;
mybinstream b;
b << 1 << 2 << 3; // b.data == 0x010203;
Любые идеи?
Это шестнадцатеричный, а не двоичный. Почему вы не можете писать 0x01, 0x02 и т. Д., Хотя ... в конце концов, это фактические символы ASCII. – jrockway
Он хочет, чтобы содержимое памяти (фактические байты) было 0x010203 (66051 десятичное), а не строка «0x010203». – KeithB
Я изменил вопрос. Надеюсь, теперь это становится яснее. – FireAphis