수색…


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::setwstd :: 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