C++
표준 : iomanip
수색…
std :: setw
int val = 10;
// val will be printed to the extreme left end of the output console:
std::cout << val << std::endl;
// val will be printed in an output field of length 10 starting from right end of the field:
std::cout << std::setw(10) << val << std::endl;
이 결과는 다음과 같습니다.
10
10
1234567890
(여기서 마지막 행은 문자 오프셋을 보는 데 도움이됩니다).
때로는 구조화 된 적절한 레이아웃으로 출력을 얻어야 할 때 출력 필드의 너비를 설정해야합니다. std::setw
의 std :: setw를 사용 std::setw
작업을 수행 할 수 있습니다.
std::setw
의 구문은 다음과 같습니다.
std::setw(int n)
여기서 n은 설정할 출력 필드의 길이입니다.
std :: setprecision
out << setprecision(n)
또는 in >> setprecision(n)
의 표현식에서 사용되는 경우 스트림의 정밀도 매개 변수를 정확하게 또는 정확하게 n으로 설정합니다. 이 함수의 매개 변수는 정수이며 정밀도의 새로운 값입니다.
예:
#include <iostream>
#include <iomanip>
#include <cmath>
#include <limits>
int main()
{
const long double pi = std::acos(-1.L);
std::cout << "default precision (6): " << pi << '\n'
<< "std::precision(10): " << std::setprecision(10) << pi << '\n'
<< "max precision: "
<< std::setprecision(std::numeric_limits<long double>::digits10 + 1)
<< pi << '\n';
}
//Output
//default precision (6): 3.14159
//std::precision(10): 3.141592654
//max precision: 3.141592653589793239
std :: setfill
표현식 out << setfill(c)
를 사용하면 스트림의 채우기 문자를 c
합니다.
주 : 현재의 필 캐릭터는 std::ostream::fill
로 취득 할 수 있습니다.
예:
#include <iostream>
#include <iomanip>
int main()
{
std::cout << "default fill: " << std::setw(10) << 42 << '\n'
<< "setfill('*'): " << std::setfill('*')
<< std::setw(10) << 42 << '\n';
}
//output::
//default fill: 42
//setfill('*'): ********42
std :: setiosflags
out << setiosflags(mask)
또는 in >> setiosflags(mask)
의 표현식에서 사용되는 경우 스트림의 모든 포맷 플래그를 마스크로 지정된대로 또는 밖으로 설정합니다.
모든 std::ios_base::fmtflags
목록 std::ios_base::fmtflags
:
-
dec
- 정수 I / O의 10 진수 기본을 사용합니다. -
oct
- 정수 I / O를위한 8 진베이스 사용 -
hex
- 정수 I / O의 경우 16 진수 기본을 사용합니다. -
basefield
-dec|oct|hex|0
마스킹 작업에 유용합니다. -
left
- 왼쪽 조정 (오른쪽에 채우기 문자 추가) -
right
- 오른쪽 조정 (왼쪽에 채우기 문자 추가) -
internal
- 내부 조정 (내부 지정 점에 문자 채우기 추가) -
adjustfield
-left|right|internal
. 마스킹 작업에 유용함 -
scientific
- 과학 표기법을 사용하여 부동 소수점 유형을 생성하거나 고정 된 것과 결합 된 경우 16 진수 표기법을 생성합니다. -
fixed
- 고정 표기법을 사용하여 부동 소수점 유형을 생성하거나 과학적으로 결합 된 경우 16 진수 표기법을 생성합니다. -
floatfield
-scientific|fixed|(scientific|fixed)|0
. 마스킹 작업에 유용함 -
boolalpha
-bool
유형을 영숫자 형식으로 삽입 및 추출합니다. -
showbase
- 정수 출력의 숫자 기준을 나타내는 접두사를 생성하고 화폐 입출력에 통화 표시기가 필요합니다. -
showpoint
- 부동 소수점 숫자 출력을 위해 무조건 소수점 문자 생성 -
showpos
- 음수가 아닌 숫자 출력에 대해+
문자를 생성합니다. -
skipws
- 특정 입력 작업 전에 선행 공백을 건너 뜁니다. -
unitbuf
각 출력 작업 후에 출력을 플러시합니다. -
uppercase
- 특정 출력 출력 작업에서 특정 소문자를uppercase
대체합니다.
조작자의 예 :
#include <iostream>
#include <string>
#include<iomanip>
int main()
{
int l_iTemp = 47;
std::cout<< std::resetiosflags(std::ios_base::basefield);
std::cout<<std::setiosflags( std::ios_base::oct)<<l_iTemp<<std::endl;
//output: 57
std::cout<< std::resetiosflags(std::ios_base::basefield);
std::cout<<std::setiosflags( std::ios_base::hex)<<l_iTemp<<std::endl;
//output: 2f
std::cout<<std::setiosflags( std::ios_base::uppercase)<<l_iTemp<<std::endl;
//output 2F
std::cout<<std::setfill('0')<<std::setw(12);
std::cout<<std::resetiosflags(std::ios_base::uppercase);
std::cout<<std::setiosflags( std::ios_base::right)<<l_iTemp<<std::endl;
//output: 00000000002f
std::cout<<std::resetiosflags(std::ios_base::basefield|std::ios_base::adjustfield);
std::cout<<std::setfill('.')<<std::setw(10);
std::cout<<std::setiosflags( std::ios_base::left)<<l_iTemp<<std::endl;
//output: 47........
std::cout<<std::resetiosflags(std::ios_base::adjustfield)<<std::setfill('#');
std::cout<<std::setiosflags(std::ios_base::internal|std::ios_base::showpos);
std::cout<<std::setw(10)<<l_iTemp<<std::endl;
//output +#######47
double l_dTemp = -1.2;
double pi = 3.14159265359;
std::cout<<pi<<" "<<l_dTemp<<std::endl;
//output +3.14159 -1.2
std::cout<<std::setiosflags(std::ios_base::showpoint)<<l_dTemp<<std::endl;
//output -1.20000
std::cout<<setiosflags(std::ios_base::scientific)<<pi<<std::endl;
//output: +3.141593e+00
std::cout<<std::resetiosflags(std::ios_base::floatfield);
std::cout<<setiosflags(std::ios_base::fixed)<<pi<<std::endl;
//output: +3.141593
bool b = true;
std::cout<<std::setiosflags(std::ios_base::unitbuf|std::ios_base::boolalpha)<<b;
//output: true
return 0;
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow