모두의 코드
C++ 레퍼런스 - std::dec, hex, oct 조작자들
작성일 : 2019-04-27
이 글은 20424 번 읽혔습니다.
std::dec, std::hex, std::oct
<ios> 에 정의됨
std::ios_base& dec(std::ios_base& str); std::ios_base& hex(std::ios_base& str); std::ios_base& oct(std::ios_base& str);
정수 입출력 연산의 진법을 바꾼다.
dec : 스트림 str 이 정수 입출력 연산 시에
10
진법을 사용하도록 한다. 이는str.setf(std::ios_base::dec, std::ios_base::basefield)
를 호출하는 것과 같다.hex : 스트림 str 이 정수 입출력 연산 시에
16
진법을 사용하도록 한다. 이는str.setf(std::ios_base::hex, std::ios_base::basefield)
를 호출하는 것과 같다.oct : 스트림 str 이 정수 입출력 연산 시에 8 진법을 사용하도록 한다. 이는
str.setf(std::ios_base::oct, std::ios_base::basefield)
를 호출하는 것과 같다.
이 함수들은 입출력 조작자(manipulator) 라고 불리며, std::basic_ostream
의 출력 연산자 (<<
) 나 std::basic_istream 의 입력 연산자 (>>
) 와 함께 사용할 수 있다.
참고로 조작자에 의해 한 번 스트림의 진법 형식이 바뀌면 계속 유지된다.
인자
str : 입출력 스트림
리턴값
바뀐 입출력 스트림 (str)
실행 예제
#include <iostream> #include <sstream> int main() { std::cout << "42 를 8 진법으로 : " << std::oct << 42 << '\n' << "42 를 10 진법으로 : " << std::dec << 42 << '\n' << "42 를 16 진법으로 : " << std::hex << 42 << '\n'; int n; std::istringstream("2A") >> std::hex >> n; std::cout << std::dec << "'2A' 를 10 진법으로 읽어들인 값은 " << n << '\n'; std::cout << std::hex << "42 는 16 진법으로 " << 42 << " 이고 21 은 16 진법으로 " << 21 << '\n'; }
실행 결과
42 를 8 진법으로 : 52 42 를 10 진법으로 : 42 42 를 16 진법으로 : 2a '2A' 를 10 진법으로 읽어들인 값은 42 42 는 16 진법으로 2a 이고 21 은 16 진법으로 15
참고 자료
setbase
: 정수 입출력 연산의 진법을 바꾼다.showbase
,noshowbase
: 정수 출력 시에 몇 진법을 사용하는지 나타낼 지 여부를 바꾼다.
댓글이
3 개 있습니다!
강좌에 관련 없이 궁금한 내용은
여기를 사용해주세요
또는 직접 입력하세요 (댓글 수정시 비밀번호가 필요합니다)
댓글을 불러오는 중입니다..