std::ios_base:: setf
From cppreference.net
|
fmtflags setf
(
fmtflags flags
)
;
|
(1) | |
|
fmtflags setf
(
fmtflags flags, fmtflags mask
)
;
|
(2) | |
서식 플래그를 지정된 설정으로 설정합니다.
1)
flags
로 식별되는 서식 플래그를 설정합니다. 효과적으로 다음 연산이 수행됩니다:
fl
=
fl
|
flags
여기서
fl
는 내부 서식 플래그의 상태를 정의합니다.
2)
mask
아래의 서식 플래그를 지우고, 지워진 플래그를
flags
로 지정된 값으로 설정합니다. 효과적으로 다음 연산이 수행됩니다:
fl
=
(
fl
&
~mask
)
|
(
flags
&
mask
)
여기서
fl
은 내부 서식 플래그의 상태를 정의합니다.
목차 |
매개변수
| flags, mask | - | 새로운 서식 설정. mask 는 변경 가능한 플래그들을 정의하고, flags 는 변경 대상 플래그들 중 설정할 플래그들을 정의합니다(나머지는 지워집니다). 두 매개변수 모두 formatting flags 상수들의 조합일 수 있습니다 |
서식 플래그
| 상수 | 설명 |
| dec | 정수 입출력에 10진법 기수 사용: std::dec 참조 |
| oct | 정수 입출력에 8진법 기수 사용: std::oct 참조 |
| hex | 정수 입출력에 16진법 기수 사용: std::hex 참조 |
| basefield | dec | oct | hex . 마스킹 연산에 유용함 |
| left | 왼쪽 정렬 (오른쪽에 채움 문자 추가): std::left 참조 |
| right | 오른쪽 정렬 (왼쪽에 채움 문자 추가): std::right 참조 |
| internal | 내부 정렬 (내부 지정 지점에 채움 문자 추가): std::internal 참조 |
| adjustfield | left | right | internal . 마스킹 연산에 유용함 |
| scientific | 부동 소수점 타입을 과학적 표기법으로 생성하거나, fixed 와 결합 시 16진법 표기법 사용: std::scientific 참조 |
| fixed | 부동 소수점 타입을 고정 소수점 표기법으로 생성하거나, scientific 와 결합 시 16진법 표기법 사용: std::fixed 참조 |
| floatfield | scientific | fixed . 마스킹 연산에 유용함 |
| boolalpha | bool 타입을 영숫자 형식으로 삽입 및 추출: std::boolalpha 참조 |
| showbase | 정수 출력 시 숫자 기수를 나타내는 접두사 생성, 통화 입출력 시 통화 표시자 요구: std::showbase 참조 |
| showpoint | 부동 소수점 숫자 출력 시 무조건 소수점 문자 생성: std::showpoint 참조 |
| showpos | 음수가 아닌 숫자 출력 시 + 문자 생성: std::showpos 참조 |
| skipws | 특정 입력 연산 전 선행 공백 문자 건너뜀: std::skipws 참조 |
| unitbuf | 각 출력 연산 후 출력 버퍼 플러시: std::unitbuf 참조 |
| uppercase | 특정 출력 연산에서 일부 소문자를 대문자로 대체: std::uppercase 참조 |
반환값
함수 호출 이전의 서식 플래그입니다.
예제
이 코드 실행
#include <iomanip> #include <iostream> #include <numbers> int main() { const double PI = std::numbers::pi; const int WIDTH = 15; std::cout.setf(std::ios::right); // equivalent: cout << right; std::cout << std::setw(WIDTH / 2) << "radius" << std::setw(WIDTH) << "circumference" << '\n'; std::cout.setf(std::ios::fixed); // equivalent: cout << fixed; for (double radius = 1; radius <= 6; radius += 0.5) std::cout << std::setprecision(1) << std::setw(WIDTH / 2) << radius << std::setprecision(2) << std::setw(WIDTH) << (2 * PI * radius) << '\n'; }
출력:
radius circumference
1.0 6.28
1.5 9.42
2.0 12.57
2.5 15.71
3.0 18.85
3.5 21.99
4.0 25.13
4.5 28.27
5.0 31.42
5.5 34.56
6.0 37.70
참고 항목
|
포맷 플래그 관리
(public member function) |
|
|
특정 포맷 플래그 지움
(public member function) |