- 입출력
* 표준 입출력 스트림의 계층도
- 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 |