cout과 << 연산자
std::cout << "Hello World!\n";
C++에서는 위와 같이 cout과 << 연산자를 이용해 다양한 데이터를 화면에 출력한다. 문자열 뿐만아니라 bool, char, short, int, long, float, double 모두 출력할 수 있다.
cout 객체
cout은 스크린 장치와 연결된 C++ 표준 출력 스트림 객체(standard output stream object)이다. cout은 C++ 프로그램에서 출력한 데이터를 자신과 연결된 스크린에 대신 출력해준다. cout 앞에 붙여진 std::의 접두어는 cout의 name space가 std임을 표시한다.
<< 연산자
<< 연산자는 스트림 삽입 연산자(stream insertion operator)로 불리며, 오른쪽 피연산자 데이터를 왼쪽 스트림 객체에 삽입한다.
본래 << 연산자는 정수를 왼쪽으로 shift 하는 C++의 기본 연산자이다. 그러나 출력 스트림에 데이터를 삽입하는 삽입 연산자로 <iostream> 헤더 파일에 재정의(operator overloading)되어 cout과 함께 사용된다.
아래 예시와 같이 다양하게 화면에 출력할 수 있다.
std::cout << "Hello" << "World!\n";
한 줄에 여러개의 << 연산자를 사용하여 여러 개의 데이터를 출력할 수 있다. << 연산자는 왼쪽에서 오른쪽으로 순서대로 실행된다.
int n = 3;
char c = '#';
std::cout << c << 5.5 << '-' << n << "hello" << true;
C++ 기본 타입 데이터도 출력할 수 있다. 이 코드의 실행 결과는 다음과 같다. true는 정수 1로 출력된다.
#5.5-3hello1
C++에서 다음 줄로 넘어가기 위해서는 C에서와 동일하게 '\n' 문자를 사용하면 된다. 그러나 '\n' 대신에 endl 조작자를 사용해도 된다. endl은 C++에서 도입한 조작자(manipulator)라고 불리는 함수이다.
std::cout << "Hello World!" << std::endl;
그렇다면 '\n'과 endl의 차이는 무엇일까?
std::cout << '\n';
위 문장은 << 연산자가 '\n' 문자를 cout의 스트림 버퍼에 단순히 삽입하고 끝난다. 그 후 cout 스트림 버퍼가 꽉 차거나 강제 출력 지시가 있는 경우 cout은 '\n'을 해석하여 커서를 다음 줄로 넘긴다.
std::cout << endl;
이와 달리 endl()은 <iostream> 헤더 파일에 작성되어 있는 함수이기 때문에 위 문장이 실행되면 << 연산자가 endl() 함수를 호출한다. endl() 함수는 '\n'을 cout의 스트림 버퍼에 넣고, cout에게 현재 스트림 버퍼에 있는 데이터를 즉각 장치에 출력하도록 지시한다. endl을 사용하면 커서를 다음 줄로 넘기는 것과 동시에 현재 cout의 스트림 버퍼에 있는 모든 데이터를 출력시킨다.
'Study > Programming Language' 카테고리의 다른 글
[C++] 짝수/홀수 판단하는 방법 2가지 (0) | 2025.03.31 |
---|---|
[C++] cin >> 을 사용해 키 입력 받기 (0) | 2024.11.03 |
[C] typedef: typedef의 사용법과 특징, 구조체 활용 (2) | 2024.03.23 |
[C] 공용체(Union): 공용체 정의와 공용체 변수 선언, 초기화 (1) | 2024.03.23 |
[C] 구조체: 구조체 정의와 구조체 변수 선언, 초기화 (1) | 2024.03.22 |