std::left / std::right / std::internal

std::left / std::right / std::internal (정렬 조작자)

출력 스트림에서 채움 문자의 위치를 수정하는 조작자들이에요. leftright는 모든 출력 타입에, internal은 정수·부동소수점·통화 출력에 적용돼요. 입력에는 영향이 없어요.

출처: cppreference

본문

<ios> 헤더에 정의돼 있어요.

// (1)
std::ios_base& left( std::ios_base& str );

// (2)
std::ios_base& right( std::ios_base& str );

// (3)
std::ios_base& internal( std::ios_base& str );

출력 스트림에서 채움 문자의 위치를 수정해요. leftright는 출력되는 모든 타입에 적용되고, internal은 정수·부동소수점·통화 출력에 적용돼요. 입력에는 영향이 없어요.

    1. str.setf(std::ios_base::left, std::ios_base::adjustfield)처럼 adjustfield를 left로 설정해요. 왼쪽 정렬.
    1. adjustfield를 right로 설정해요. 오른쪽 정렬.
    1. adjustfield를 internal로 설정해요. 부호·진법 접두어 뒤에서부터 채움.

setw와 함께 쓰면 채움 문자(fill)로 채워져요.

예제

#include <iostream>
#include <iomanip>

int main()
{
    std::cout << std::left << std::setw(6) << 42 << "|\n";   // "42    |"
    std::cout << std::right << std::setw(6) << 42 << "|\n";  // "    42|"
    std::cout << std::internal << std::setw(6) << -42 << "|\n"; // "-   42|"
}

더 알아보기 (Learn more)

cppreference