본문 바로가기
프로그래밍 언어/C++

C++ <iomanip> 포맷 제어 도구

by Jo_Wick 2025. 10. 1.
반응형

<iomanip>란?

  • <iomanip>는 이름 그대로 **I/O Manipulators (입출력 조정기)**의 약자로, iostream(cout, cin)과 함께 쓰는 포맷 제어 도구들을 모아둔 헤더입니다.
  • 입출력 시 출력 형식(format)을 세밀하게 조정할 수 있는 함수(조정자, manipulator)를 제공합니다.
  • 예: 숫자 자리수, 소수점 표현 방식, 폭(width), 채움 문자(fill), 진법 등

 

주요 기능 (자주 쓰는 것)

1. 소수점 자리수 제어

#include <iomanip>

cout << fixed << setprecision(2) << 3.14159; // 3.14
cout << scientific << setprecision(3) << 3.14159; // 3.142e+00
  • fixed → 고정 소수점 형식
  • scientific → 과학적 표기법
  • setprecision(n) → 소수점 이하 자리수 n

2. 출력 폭 & 채움 문자

cout << setw(10) << 42 << endl;           // "        42" (폭 10, 오른쪽 정렬)
cout << setw(10) << setfill('*') << 42;   // "********42"
  • setw(n) → 최소 폭 지정
  • setfill(ch) → 빈칸 채울 문자 지정

3. 진법 출력

cout << hex << 255 << endl; // ff
cout << oct << 255 << endl; // 377
cout << dec << 255 << endl; // 255 (기본)
  • hex → 16진수
  • oct → 8진수
  • dec → 10진수

4. 정렬 방식

cout << setw(10) << left << 42 << endl;   // "42        "
cout << setw(10) << right << 42 << endl;  // "        42"
cout << setw(10) << internal << -42;      // "-       42"
  • left, right, internal → 출력 정렬 방향 지정

5. bool 출력 방식

cout << true << " " << false << endl;        // 1 0
cout << boolalpha << true << " " << false;   // true false
  • boolalpha → true/false 문자 출력
  • noboolalpha → 1/0 출력 (기본)

 

예제 종합

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double pi = 3.14159;
    int n = 42;

    cout << fixed << setprecision(2) << "pi=" << pi << endl; // pi=3.14
    cout << setw(8) << setfill('*') << n << endl;            // ******42
    cout << hex << n << endl;                                // 2a
    cout << boolalpha << (n > 0) << endl;                    // true
}

 

정리

 

  • <iomanip> = 입출력 조정자 헤더
  • 주요 기능: setprecision, setw, setfill, fixed, scientific, hex/oct/dec, left/right/internal, boolalpha
  • cout/cin을 “포맷팅된 입출력 도구”로 만들어 줌

 

반응형

댓글