C언어를 배우고 난 뒤 처음 C++ 책을 접하게 되면 iostream이라는 것을 배우게 됩니다. 모두 단순히 출력또는 입력을 연산자 오버로딩을 통해 간단하게 해주는 정도의 기능을 알고 넘어가게 되는데 사실 그정도만 알면 되죠. 하지만 가끔 그 이상의 iostream기능이 궁금할때가 있습니다. 그것을 잘 몰라서 고생하는 경우가 계신것 같아서 옵션으로 쓸수 있는 것들을 한번 추려서 올려봅니다.
이 자료는 모두 Practical C++ Programming에서 발췌된 것입니다. 참고로 책에서도 C++의 입,출력 포맷 방식이 아주 불편한 방식이라구 [1]. sprintf등을 통한 포맷된 문자열을 화면으로 출력하기를 권하고 있습니다. 하지만 때로는 이런것들을 알고 있는 것이 도움이 될때도 있기에 올려봅니다. 그럼 다들 즐프하세염.
입출력 변환 플래그
ios::skipws 입력에서 공백 문자를 건너뛴다.
ios::left 출력 왼쪽 정렬
ios::right 출력 오른쪽 정렬
ios::internal 숫자 출력은 부호나 기조 문자와 숫자 사이에 채우기 문자 삽입
ios::dec 10진수
ios::oct 8진수
ios::hex 16진수
ios::showbase 각 숫자의 서두에 기저를 표시한다. 예를들어 16진수이면 0x가 앞에출력된다.
ios::showpoint 모든 부동 소수에 대해 10진수로 표시한다.
ios::uppercas 16진수 변환시 대문자로 출력
ios::showpos 모든 양수 앞에 + 기호 붙임
ios::scientific 출력 시에 모든 부동 소수를 지수 형식으로 변환
ios::fixed 출력시에 모든 부동 소수를 고정 소수로 변환
ios::unitbuf 버퍼 출력
ios::studio 출력 후에 스트립 플러시
입출력 조정자
setiosflags(long flags) 지정 변환 플래그 설정
resetiosflags(long flags) 지정 플래그로 복원
dec 10진수
hex 16진수
oct 8진수
setbase(int base) 기저를 8,10,16으로 변환
setw(int width) 출력 너비 설정
setprecision(int precision) 부동 소수 출력의 정확도 설정
setfill(char ch) 채우기 문자 설정
ws 입력시에 공백 문자 건너뜀
endl 라인끝 출력
ends 문자열 끝 출력
flush 버퍼에 있는 내용을 출력
[1] boost::format을 사용하면 C++에서도 printf같이 편리하게 자료를 출력하실 수 있습니다.
http://www.boost.org/doc/libs/1_47_0/libs/format/
1 0