본문 바로가기

전공 과목/C++

C++의 출력 cout

C++에서 hello 출력하기

 

#include <iostream>

C++에서는 #include <stdio.h>가 아닌 #include <iostream>을 사용한다.

#include <iostream>은 cout과 << 연산자를 포함한다.

int main
{
	std::cout << "hello";
    
	return 0;
}

출력 함수도 printf가 아닌 cout을 사용한다.

cout은 C++ 표준 출력 스트림 객체(standard output stream object)이다. cout은 C++ 프로그램에서 출력한 데이터를 자신과 연결된 스크린에 대신 출력해 준다.
cout 앞에 붙여진 std::의 접두어는 cout의 이름 공간(namespace)이 std임을 표시한다.

'<<' 연산자는 스트림 삽입 연산자(stream insertion operator)라고 불리며, 오른쪽 피 연산자 데이터를 왼쪽 스트림 객체에 삽입한다. 
본래 << 연산자는 정수를 왼쪽으로 시프트(shift)하는 C++의 기본 연산자이다. 그러나 출력 스트림에 데이터를 삽입하는 삽입 연산자로 <iostream> 헤더 파일에 재정의(operator overloading)되어 cout과 함께 사용된다.

화면에서 다음 줄로 넘어가기

std:: cout << "hello" << "\n";

위의 코드처럼 C에서 사용했던 '\n' 문자를 사용하여 다음 줄로 넘어갈 수 있다.

std:: cout << "hello" << std:: endl;

'\n' 대신 다음과 같이 endl조작자를 사용해도 된다.
endl은 C++에서 도입한 조작자(manipulator)라고 불리는 함수이다.

std:: 란?

std는 표준 이름 공간으로서, 모든 C++ 표준 라이브러리는 std 이름 공간에 만들어져 있다. 그러므로 응용 프로그램이 C++ 표준 라이브러리에서 선언된 이름(identifier)을 사용할 때, std::를 접두어로 붙여야 한다.
 C++ 표준 입출력 라이브러리에 포한된 cout, endl은 std::와 함께 사용된다.

std:: cout << "hello" << std::endl;

std::의 생략과 using 지시어

std 이름 공간에 선언된 수많은 이름에 대해 사용할 때마다 std:: 접두어를 붙이는 것은 상당히 번거롭다. 
using 지시어를 사용하면 이름 공간 접두어를 생략할 수 있다.

using std::cout; // cout에 대해서만 std:: 생략

cout << "hello" << std:: endl;

위의 코드에 쓰인 것처럼 using std::cout은 cout에 대해서만 std::를 생략하고 endl에 대해서는 std::를 생략할 수 없다.
std 이름 공간에 선언된 모든 이름에 대해 std::를 생략하고자 한다면, 다음과 같이 namespace 키워드와 함께 using 지시어를 사용하면 된다.

using namespace std;

cout << "hello" << endl;

using namespace std를 사용하면 std의 이름 공간에 선언된 모든 이름에 std::를 생략하는 것이 가능하다.

using namespace std를 사용하여 std::를 생략한 코드

 

'전공 과목 > C++' 카테고리의 다른 글

위임 생성자  (0) 2019.09.22
클래스와 생성자  (0) 2019.09.12
C++의 입력과 문자열  (0) 2019.09.06