Попробуйте:
int x = 5;
std::cout.write(reinterpret_cast<const char*>(&x),sizeof(x));
Примечание. Запись данных в двоичном формате является непереносимой.
Если вы хотите прочитать данные на альтернативном компьютере, вам нужно либо иметь точно такую же архитектуру, либонеобходимо стандартизировать формат и убедиться, что все машины используют стандартный формат.
Если вы хотите записать двоичный файл, самый простой способ стандартизировать формат - это преобразовать данные в сетевой формат (для этого есть набор функцийhtonl () <-> ntohl () и т. д.)
int x = 5;
u_long transport = htonl(x);
std::cout.write(reinterpret_cast<const char*>(&transport), sizeof(u_long));
Но самый переносимый формат - просто преобразовать текст.
std::cout << x;