std::print supports binary output mode.
1#include <print>23// Binary output to stdout4std::print(std::cout, "\x00\x01\x02");56// Binary to file7std::FILE* f = fopen("data.bin", "wb");8std::print(f, "\x00\x01\x02");9fclose(f);1011// Format with binary output12uint32_t value = 42;13std::print(std::cout, "{}", std::span(reinterpret_cast<char*>(&value), 4));1415// Binary + text16std::print(std::cout, "Header: ");17std::print(std::cout, "\xDE\xAD");18std::print(std::cout, "\n");1920// Raw bytes21std::string data = "\x00\x01\x02\x03";22std::print(std::cout, "{}", data); // Raw bytes, no escaping2324// Hex dump25std::print(std::cout, "{:02x}", 255); // "ff"
Use cases: