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?