std::showbase / std::noshowbase
std::showbase / std::noshowbase (진법 접두어 조작자)
수치 진법 접두어 표시 여부를 제어하는 조작자예요. 예를 들어 16진수 출력에서 0x 접두어 표시를 켜거나 꺼요.
출처: cppreference
본문
<ios> 헤더에 정의돼 있어요.
// (1)
std::ios_base& showbase( std::ios_base& str );
// (2)
std::ios_base& noshowbase( std::ios_base& str );
-
str.setf(std::ios_base::showbase)처럼showbase플래그를 켜요.
-
str.unsetf(std::ios_base::showbase)처럼showbase플래그를 꺼요.
I/O 조작자라 out << std::showbase 또는 in >> std::showbase처럼 쓸 수 있어요. showbase가 켜지면 정수 출력 시 진법 접두어(0x, 0, 등)가 표시돼요(C++11부터).
예제
#include <iostream>
int main()
{
std::cout << std::showbase << std::hex << 255 << ' ' // "0xff"
<< std::noshowbase << 255 << '\n'; // "ff"
}