#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::를 생략하는 것이 가능하다.
'전공 과목 > C++' 카테고리의 다른 글
위임 생성자 (0) | 2019.09.22 |
---|---|
클래스와 생성자 (0) | 2019.09.12 |
C++의 입력과 문자열 (0) | 2019.09.06 |