정리

'STREAM'에 해당되는 글 1건

  1. Stream Manipulators

Stream Manipulators

저장소/VC++

Stream Manipulators


MSDN : http://msdn.microsoft.com/en-us/library/vstudio/chfx9kse(v=vs.100).aspx

아오.. msdn에서 찾기 힘들어서 검색, 아래 내용 출처는 지식인


iomanip.h 포함 필요.



입력하거나 출력하는 데이터를 스트림(stream)이라고 하고 이런 조작기들을 스트림 조작기(stream manipulators)라고 한다.

 

 [표]  I/O 스트림 조작기

조작기

설명

dec

hex

oct

endl

ends

flush

setbase(int n)

resetiosflags(long f)

setiosflags(long f)

setfill(int c)

setprecision(int n)

setw(int n)

10진수 전환 베이스를 설정한다.

16진수 전환 베이스를 설정한다.

8진수 전환 베이스를 설정한다.

개행문자('\n')를 삽입하고 스트림 내용을 지운다.

문자열에 널 문자를 삽입한다.

출력 스트림의 내용을 지운다.

n진수로 전환 설정한다.

형식 플래그인 f.f에 의해 지정된 형식을 지운다.

형식 플래그인 f.f에 의해 지정된 형식을 설정한다.

c로 채우기 문자를 설정한다.

n으로 부동 소수점 유효자리를 설정한다.

n으로 필드 폭을 설정한다.

 

 

 [표]  resetiosflags()와 setiosflags()를 위한 형식 플래그 값.

형식 플래그 이름

설명

ios::left

ios::right

ios::scientific

ios::fixed

ios::dec

ios::hex

ios::oct

ios::uppercase

 

ios::showbase

ios::showpos

ios::showpoint

setw() 폭 안에 출력을 좌측 정돈한다.

setw() 폭 안에 출력을 우측 정돈한다.

과학용 표기로 출력을 형식 지정한다.

10진수 형식으로 숫자를 형식 지정한다.

10진수로 숫자를 형식 지정한다.

16진수로 숫자를 형식 지정한다.

8진수로 숫자를 형식 지정한다.

16진수와 과학용 표기의 문자를 대문자로 형식 지정한다.

( 0x123을 0X123으로, 2.34e+05를 2.34E+05로 )

수치 베이스 접두 문자를 출력한다.( 16진수의 0x나 8진수의 0 )

양수를 출력할 때 플러스 부호, +를 출력한다.

정확도를 위해 필요하다면 끝의 0들을 표시한다.

 

형식 플래그의 값들은 상수이다. 영역 지정 연산자(::)는 나중에 설명한다.

형식 플래그는 두 함수 resetiosflags()와 setiosflags()에서만 작동한다.

 

  

 

예제

   조작기 사용

#include

#include

#include

void main(){

    int num=220;

    clrscr();

    cout << "The decimal num is " << num << "\n";  // The decimal num is 220

    cout << "The hexadecimal num is " << hex << num << "\n";

        // The hexadecimal num is dc

    cout << "The octal num is " << setbase(8) << num << "\n";

        // The octal num is 334

    cout << setbase(10);

    cout << 12345 << "\n";     //  12345

    cout << setw(20) << 12345 << "\n";    // '               12345'

    cout << setw(20) << setfill('*')<< 12345 << "\n";  // ***************12345

    cout << setiosflags(ios::left);

    cout << setw(10) << 12345 << "\n";                        // 12345*****

    cout << setiosflags(ios::hex) << 45 <<"\n";                  // 2d

    cout << setiosflags(ios::hex | ios::uppercase) << 45 <<"\n";   // 2D

    getch();

}