안녕하세요. BlockDMask 입니다.
지난시간에 이어서 오늘도 조정자 함수 io manipulator 들에 대해서 알아보려고합니다.
오늘은 왼쪽 정렬을하는 std::left, 오른쪽 정렬을하는 std::right, 출력시 개수를 지정하는 std::setw, 빈 공간을 채우는 std::setfill 함수. 이렇게 총 4개의 함수에 대해서 알아보겠습니다.
<목차>
1. C++ std::setw, std::setfill 함수 설명
2. C++ std::left, std::right 함수 설명
1. std::setw, std::setfill 함수 설명
- 헤더파일
<iomanip>
- std::setw 함수
std::setw(n)
출력시 길이를 n으로 지정.
std::setw 출력에 사용할 필드의 넓이를 설정합니다. 즉 가로길이를 지정할 수 있습니다.
- std::setfill 함수
std::setfill(c)
비어있는 공간을 c로 채워주는 함수입니다.
setfill 함수로 한번 설정을 해주면 설정이 계속해서 적용이 되는 특징을 가지고 있습니다.
한번 설정한 후에 원래대로 돌려주어야 합니다.
- std::setw, std::setfill 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#include <iostream>
#include <iomanip>
int main(void)
{
int a = 1234567890;
int b = 1;
int c = 22;
// 10자리 길이 확인용.
std::cout << a << std::endl;
// setw를 이용해서 10넓이 만큼 출력
std::cout << std::setw(10) << b << std::endl;
std::cout << std::setw(10) << c << std::endl;
// setfill 이용해서 빈 공간 채우기
std::cout << std::setw(10) << std::setfill('#') << b << std::endl;
std::cout << std::setw(10) << std::setfill('#') << c << std::endl;
// setfill 을 안해줘도 #으로 채워진다.
// setfill이 한번 설정을 하면 계속해서 적용되는것을 확인.
std::cout << std::setw(10) << b <<std::endl;
std::cout << std::setw(10) << c << std::endl;
// setfill 빈칸으로 되돌리기
std::cout << std::setfill(' ');
std::cout << std::setw(10) << b << std::endl;
std::cout << std::setw(10) << c << std::endl;
return 0;
}
|
cs |
이렇게 std:setw(10) 함수를 통해서 10자리의 빈 공간을 만들고 변수 b, 변수 c의 값을 집어넣게되면 자동적으로 자릿수에 맞게 채워지는 것을 볼 수 있습니다.
std::setfill('#') 함수가 설정이 되면 비어있는 공간이 # 문자로 채워져 있는 것을 볼 수 있습니다.
그 후 따로 std::setfill 함수를 호출하지 않아도 빈칸에 자동적으로 # 문자가 채워지는 것을 볼 수 있으며, 이는 std::setfill 설정이 한번 적용되면 그 다음 std::cout 출력 때에도 적용되는 것을 알 수 있습니다.
std::setfill(' ')을 호출해주어서 다시 빈칸으로 변경하게 되면 원래대로 돌아오는 것을 볼 수 있습니다.
2. std::left, std::right 함수 설명
- 헤더파일
<iomanip>
- std::left 함수
std::left
왼쪽 정렬 설정
- std::right 함수
std::right
오른쪽 정렬 설정
- std::left, std::right 함수 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#include <iostream>
#include <iomanip>
int main(void)
{
int a = 1234567890;
int b = 1;
int c = 22;
// 10자리 길이 확인용.
std::cout << a << std::endl;
// setw를 이용해서 10넓이 만큼 출력
std::cout << std::setw(10) << b << std::endl;
std::cout << std::setw(10) << c << std::endl;
// 왼쪽 오른쪽
std::cout << std::setw(10) << std::left << b << std::endl;
std::cout << std::setw(10) << std::right << c << std::endl;
// 왼쪽 출력 설정
std::cout << std::left;
std::cout << std::setw(10) << b << std::endl;
std::cout << std::setw(10) << c << std::endl;
// 오른쪽 출력 설정
std::cout << std::right;
std::cout << std::setw(10) << b << std::endl;
std::cout << std::setw(10) << c << std::endl;
return 0;
}
|
cs |
std::left 함수는 왼쪽 정렬로 출력을하고, std::right 함수는 오른쪽 정렬하여 출력하는 것을 볼 수 있습니다.
std::left, std::rigth 함수도 한번 설정을 하면 그 다음 std::cout 에 계속해서 영향을 준다는 점을 확인할 수 있습니다.
이상 조정자 함수 setfill, left, right, setw에 대해서 알아보았습니다.
오늘도 읽어주셔서 감사합니다.
'<개인공부> > [C++]' 카테고리의 다른 글
[C++] 디폴트 매개변수 (default parameter) (0) | 2021.02.15 |
---|---|
[C++] constexpr 상수 (0) | 2021.02.11 |
[C++] 인라인 함수 (inline function) (1) | 2021.02.10 |
[C++] 2진수 8진수 16진수 표기법, 자릿수 표기법 (0) | 2021.02.09 |
[C++] 8진수, 10진수 16진수 출력 (입출력 형태 지정 1) (1) | 2021.02.04 |
[C++] 표준 입출력 std::cin, std::cout 정리 및 예제 (0) | 2021.02.02 |
[C++] namespace 네임스페이스 정리 및 예제 (2) | 2021.02.01 |
[C++] override, final 키워드 (가상함수 관련 키워드)에 대해서 (0) | 2020.08.17 |