sstream print example español biblioteca c++ c++11 hex string-formatting stringstream

c++ - print - stringstream c#



cómo formatear números hexadecimales usando stringstream (1)

setw establecerá el ancho de toda la salida formateada, incluida la base mostrada, por lo que no está viendo el 0 inicial. Además, no hay manera de hacer que la base se muestre en minúsculas si usa std::showbase junto con std::uppercase . La solución es insertar la base manualmente y luego aplicar los manipuladores restantes.

ss << "0x" << std::uppercase << std::setfill(''0'') << std::setw(4) << std::hex << id;

Esto genera 0x0467

Estoy tratando de convertir un corto sin signo a su representación hexadecimal en mayúsculas y prefijo con 0 usando stringstream. Parece que no puedo escribir con mayúsculas y 0 es correcto. Esto es lo que tengo ahora:

USHORT id = 1127; std::stringstream ss; ss << std::showbase << std::uppercase << std::setfill(''0'') << std::setw(4) << std::hex << id; std::string result = ss.str();

esto hace que la base ''0x'' prefijada también esté en mayúsculas, pero quiero que sea en minúsculas. también resulta en que no hay prefijos de 0 al valor hexadecimal después del prefijo de 0x base (actualmente 0X). por ejemplo, ahora esto generará 0X467 en lugar del 0x0467 esperado. ¿Cómo puedo solucionar esto?