cout
개요cout
은 C++ 표준 라이브러리의 iostream
헤더 파일에 정의된 객체로, 표준 출력(stdout)에 데이터를 출력하는 데 사용됩니다. <<
연산자를 사용하여 데이터를 출력할 수 있으며, 다양한 형식 지정자를 통해 출력 형식을 조정할 수 있습니다.
기능 | 설명 |
---|---|
<< 연산자 | 데이터를 출력합니다. |
cout.put() | 단일 문자를 출력합니다. |
cout.write() | 지정된 길이의 문자열을 출력합니다. |
cout.width() | 출력 필드의 너비를 설정합니다. |
cout.fill() | 출력 필드의 공백을 채울 문자를 설정합니다. |
cout.precision() | 부동 소수점의 정밀도를 설정합니다. |
cout.setf() | 플래그를 설정하여 출력 형식을 지정합니다. |
cout.unsetf() | 설정된 플래그를 해제합니다. |
freopen() | 표준 출력을 파일로 리디렉션합니다. |
setw() , setfill() | iomanip 라이브러리의 함수로, 출력 필드 너비와 공백 채우기 문자를 설정합니다. |
setprecision() , showpos() | iomanip 라이브러리의 함수로, 부동 소수점의 정밀도와 양수 표시를 설정합니다. |
hex , oct , dec | 16진수, 8진수, 10진수로 출력 형식을 변경합니다. |
cout
함수 예제 코드#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
{
// 기본적인 cout 사용법
cout << 1 << endl;
cout.operator<<(1).operator<<(endl); // 위와 동일(연산자 오버로딩)
cout << '1' << endl;
operator<<(cout, '1').operator<<(endl); // 위와 동일(연산자 오버로딩)
}
{
// 다양한 방법으로 문자 출력
cout << 'a' << 'b' << endl;
cout.put('a').put('b').put('\n');
cout.write("ab\n", 3);
}
{
// 10칸 여백 설정
cout.width(10);
cout << 1 << endl;
}
{
// 10칸 여백 설정 및 여백 채우기
cout.width(10);
cout.fill('#');
cout << 1 << endl;
cout.fill(' '); // 원상 복구
}
{
// 정밀도 설정
float num = 0.1234567;
cout << num << endl; // 기본 정밀도
cout.precision(2); // 정밀도 2로 설정
cout << num << endl;
cout.precision(64); // 정밀도 64로 설정
cout << num << endl;
}
{
// 양수에 + 기호 표시 설정
cout.setf(ios_base::showpos);
cout << 1 << endl;
cout << 2 << endl;
cout.unsetf(ios_base::showpos); // + 기호 표시 해제
cout << 1 << endl;
cout << 2 << endl;
}
{
// bool 값을 true/false로 출력 설정
cout.setf(ios_base::boolalpha);
cout << true << endl;
cout << false << endl;
cout.unsetf(ios_base::boolalpha); // true/false 출력 해제
cout << true << endl;
cout << false << endl;
}
{
// 정렬 설정
cout.setf(ios_base::internal, ios_base::adjustfield); // 부호와 숫자를 양 끝에 배치
cout.width(10);
cout << -10 << 20 << endl;
cout.setf(ios_base::left, ios_base::adjustfield); // 왼쪽 정렬
cout.width(10);
cout << -10 << 20 << endl;
cout.setf(ios_base::right, ios_base::adjustfield); // 오른쪽 정렬
cout.width(10);
cout << -10 << 20 << endl;
}
{
// 8진수, 16진수, 10진수 출력
cout.setf(ios_base::oct, ios_base::basefield);
cout << 16 << endl;
cout.setf(ios_base::hex, ios_base::basefield);
cout << 16 << endl;
cout.setf(ios_base::dec, ios_base::basefield);
cout << 16 << endl;
}
{
// 다른 방식으로 16진수, 8진수, 10진수 출력
cout << hex << 16 << endl;
cout << oct << 8 << endl;
cout << dec << 10 << endl;
hex(cout);
cout << 16 << endl;
oct(cout);
cout << 8 << endl;
dec(cout);
cout << 10 << endl;
}
{
// 조합된 조작자 사용
cout << setw(10) << setfill('#') << setprecision(2) << showpos << 1.1f << endl;
}
{
// 표준 출력을 파일로 리디렉션
freopen("output.txt", "w", stdout);
cout << "Hello World" << endl;
}
}
기본적인 cout
사용법:
cout << 1 << endl;
cout.operator<<(1).operator<<(endl); // 동일한 출력
cout << '1' << endl;
operator<<(cout, '1').operator<<(endl); // 동일한 출력
<<
연산자와 operator<<
를 사용하여 출력을 할 수 있습니다.다양한 방법으로 문자 출력:
cout << 'a' << 'b' << endl;
cout.put('a').put('b').put('\n');
cout.write("ab\n", 3);
put
과 write
함수를 사용하여 문자를 출력할 수 있습니다.10칸 여백 설정:
cout.width(10);
cout << 1 << endl;
width
함수를 사용하여 출력 필드의 너비를 설정합니다.여백 채우기 설정:
cout.width(10);
cout.fill('#');
cout << 1 << endl;
cout.fill(' ');
fill
함수를 사용하여 출력 필드의 공백을 특정 문자로 채울 수 있습니다.정밀도 설정:
float num = 0.1234567;
cout.precision(2);
cout << num << endl;
cout.precision(64);
cout << num << endl;
precision
함수를 사용하여 부동 소수점의 정밀도를 설정합니다.양수에 + 기호 표시 설정:
cout.setf(ios_base::showpos);
cout << 1 << endl;
cout.unsetf(ios_base::showpos);
cout << 1 << endl;
setf
와 unsetf
함수를 사용하여 플래그를 설정 및 해제할 수 있습니다.bool 값을 true/false로 출력 설정:
cout.setf(ios_base::boolalpha);
cout << true << endl;
cout.unsetf(ios_base::boolalpha);
cout << true << endl;
setf
와 unsetf
함수를 사용하여 bool 값을 true/false 또는 1/0으로 출력할 수 있습니다.정렬 설정:
cout.setf(ios_base::internal, ios_base::adjustfield);
cout.width(10);
cout << -10 << 20 << endl;
cout.setf(ios_base::left, ios_base::adjustfield);
cout.width(10);
cout << -10 << 20 << endl;
cout.setf(ios_base::right, ios_base::adjustfield);
cout.width(10);
cout << -10 << 20 << endl;
setf
함수를 사용하여 정렬 방식을 설정할 수 있습니다.8진수, 16진수, 10진수 출력 설정:
cout.setf(ios_base::oct, ios_base::basefield);
cout << 16 << endl;
cout.setf(ios_base
::hex, ios_base::basefield);
cout << 16 << endl;
cout.setf(ios_base::dec, ios_base::basefield);
cout << 16 << endl;
setf
함수를 사용하여 숫자의 기수(8진수, 16진수, 10진수)를 설정할 수 있습니다.다른 방식으로 8진수, 16진수, 10진수 출력 설정:
cout << hex << 16 << endl;
cout << oct << 8 << endl;
cout << dec << 10 << endl;
hex(cout);
cout << 16 << endl;
oct(cout);
cout << 8 << endl;
dec(cout);
cout << 10 << endl;
hex
, oct
, dec
조작자를 사용하여 출력 형식을 변경할 수 있습니다.조합된 조작자 사용:
cout << setw(10) << setfill('#') << setprecision(2) << showpos << 1.1f << endl;
setw
, setfill
, setprecision
, showpos
조작자를 조합하여 출력 형식을 설정할 수 있습니다.표준 출력을 파일로 리디렉션:
freopen("output.txt", "w", stdout);
cout << "Hello World" << endl;
freopen
을 사용하여 표준 출력을 파일로 리디렉션할 수 있습니다.