std::left / std::right / std::internal
std::left / std::right / std::internal (정렬 조작자)
출력 스트림에서 채움 문자의 위치를 수정하는 조작자들이에요. left와 right는 모든 출력 타입에, 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 );
출력 스트림에서 채움 문자의 위치를 수정해요. left와 right는 출력되는 모든 타입에 적용되고, internal은 정수·부동소수점·통화 출력에 적용돼요. 입력에는 영향이 없어요.
-
str.setf(std::ios_base::left, std::ios_base::adjustfield)처럼 adjustfield를left로 설정해요. 왼쪽 정렬.
-
- adjustfield를
right로 설정해요. 오른쪽 정렬.
- adjustfield를
-
- adjustfield를
internal로 설정해요. 부호·진법 접두어 뒤에서부터 채움.
- adjustfield를
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|"
}