문제

나는 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 진수로 표시되었습니다. 바이트는 서명되지 않은 숯의 타이핑입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top