문제
나는 Char의 16 진수를 출력하고 좋은 방법으로 형식화하려고합니다.
필수의: 0x01 : value 0x1
내가 얻을 수있는 것은 다음과 같습니다. 00x1 : value 0x1
// iManip을 사용하지 않으면 0x1
다음은 내가 가진 코드입니다. 'ch'는 서명되지 않은 숯으로 선언되었습니다. 값을 확인하고 '0'을 수동으로 추가하는 것 외에 다른 방법이 있습니까?
cout << showbase;
cout << hex << setw(2) << setfill('0') << (int) ch;
편집하다:
온라인에서 하나의 솔루션을 찾았습니다.
cout << internal << setw(4) << setfill('0') << hex << (int) ch
해결책
std::cout << "0x" << std::noshowbase << std::hex << std::setw(2) << std::setfill('0') << (int)ch;
부터 setw
전체 인쇄 번호의 왼쪽에 패드 (후 showbase
은 적용되다), showbase
귀하의 경우에 사용할 수 없습니다. 대신 위와 같이베이스를 수동으로 인쇄하십시오.
다른 팁
내 프로젝트에서 나는 이것을했다 :
ostream &operator<<(ostream &stream, byte value)
{
stream << "0x" << hex << (int)value;
return stream;
}
스트림 출력에 대해 연산자 <<을 겪었고 바이트 인 모든 것이 16 진수로 표시되었습니다. 바이트는 서명되지 않은 숯의 타이핑입니다.
제휴하지 않습니다 StackOverflow