Programming/C++

c++ 입출력 개요

byeong07 2018. 6. 6. 14:23

- 입출력

 

* 표준 입출력 스트림의 계층도

 

 

- iostream 계층도

 

cout은 basic_ostream에 속해 있으며, cin은 basic_istream에 속해 있습니다.

 

- 표준 출력 객체 cout

 

cout은 Console Output의 약어로 콘솔 출력을 의미합니다.

 

cout은 클래스가 아닌 객체입니다.

 

 

cerr과 clog는 오류 출력과 디버깅 출력을 위한 것인데 기본적으로 모니터에 출력합니다.

 

 

- 기본 출력과 endl

 

 

 

기본적인 출력 방법입니다.

 

cout은 << 연산자를 오버로딩해서 사용하는데 이유는 모습이 직관적이기 때문입니다.

 

원래 << 연산자는 비트 왼쪽 이동 연산자입니다.

 

따라서 연산자 우선 순위는 비트 왼족 이동 연산자로 적용됩니다.

 

<<은 기본 자료형에 오버로딩이 되어 있기 때문에 C처럼 서식 지정자가 필요하지 않습니다.

 

내부적으로 기본 자료형을 char로 변경하기 때문에 기본 자료형에 관해서는 자유롭습니다.

 

 

기본 자료형으로 할 때 가능합니다.

 

사용자 정의 자료형으로 cout을 사용하려면 << 연산자를 오버로딩해야 합니다.

 

endl은 End Line의 약어인데 escape sequence '\n'과 같습니다.

 

 

'\n'이 있으며 그 밑에 flush()가 있습니다.

 

즉 출력 버퍼를 비워준다는 것입니다.

 

중요한 것은 endl이 함수라는 것입니다.

 

cout의 <<은 endl() 형식의 함수 포인터도 오버로딩이 되어 있습니다.

 

그래서 cout << endl 이렇게 사용할 수 있는 것입니다.

 

 

- iomanip 사용하기

 

cout도 출력 조정이 가능한데 두 가지 방법이 있습니다.

 

먼저 iomanip을 이용하는 것입니다.

 

iomanip은 Input Output Manipulator의 약어로 "입출력 조정자:라는 의미입니다.

 

소스 코드로 확인하면 알 수 있습니다.

 

 

사용 함수는 setw(), setfill(), setbase(), setprecision() 입니다.

 

설명은 주석에 있습니다.

 

 

- oct, dec, hex, setf, ussetf, showbase, uppercase

 

 

8진수는 oct, 10진수는 dec, 16진수는 hex를 사용합니다.

 

16진수는 showbase, uppercase로 추가 설정을 할 수 있으며,

 

cout의 메서드인 setf(), unsetf()를 이용하면 현재 설정을 한 번에 변경할 수 있습니다.

 

 

- precision, showpoint, fixed, scientific

 

 

실수는 이렇게 표현을 합니다.

 

- width, fill, left, right, internal

 

 

 

- boolalpha

 

 

bool은 true와 false가 각각 1과 0으로 인식되는데 cout의 boolalpha를 이용하면 문자열로 출력할 수 있습니다.

 

'Programming > C++' 카테고리의 다른 글

Inline 함수, 매크로 함수  (0) 2018.09.10
입출력 개요에 대한 두 번째 정리  (0) 2018.06.06