C++

Hello world!

mayleaf 2019. 2. 22. 06:13

다음 코드를 살펴봅시다.


#include <stdio.h>

int main(){

printf("Hello world!\n");

return 0;

}


C에서 Hello world!를 출력하기 위한 코드였습니다.


다음 코드를 살펴봅시다.


#include <iostream>

int main(){
    std::cout << "hello world!" << std::endl;
    return 0;
}


C++에서 Hello world!를 출력하기 위한 코드입니다.


각 코드의 첫 번째 줄을 보면 C언어는 stdio.h를 통해 표준입출력 함수에 접근하고, C++은 iostream을 통해 표준입출력 객체에 접근합니다.

두 번째 코드의 1번째 줄을 보면 iostream을 include합니다. 이처럼 C++에서는 I/O처리가 가능한 타입의 객체를 통해 Input/Output을 처리합니다.

iostream을 include하면 istream타입과 ostream타입을 쓸 수 있고, std:cin과 std::cout은 각각 istream/ostream타입의 객체입니다.


istream은 입력 스트림, ostream은 출력 스트림을 나타냅니다.

각 첫문자는 input의 i와 output의 o를 의미하고, 스트림이란 물리적인 입출력 장치에서의 입출력이 순서대로 이어지는 가상의 통로입니다.


ostream타입 객체는 왼쪽 피연산자에 ostream 객체, 오른쪽 피연산자의 메세지를 받는 '<<' 연산자를 사용하여

주어진 메세지를 출력한 ostream객체를 반환합니다, 그래서 << 연산자는 한 줄에서 여러개가 나타날 수 있습니다.


그리고 '<<'연산자는 출력할 메세지를 전달할 때, 조작자(manipulator)라고 불리는 특별한 메세지를 전달 할 수 있습니다.

예를 들어, std::endl 조작자는 현재 줄을 마치고 연관된 버퍼를 비우는 역할을 수행합니다.


istream타입 객체는 왼쪽 피연산자에 istream 객체, 오른쪽 피연산자에 데이터를 저장할 변수를 두는 '>>'연산자를 사용하여

데이터를 읽어오는 istream 객체를 반환합니다. 그래서 >> 연산자도 한 줄에서 여러개가 나타날 수 있습니다.


마지막으로 예제코드에 나타난 std는 표준 라이브러리에 정의된 네임스페이스의 이름입니다.

네임스페이스는 다른 곳에서 정의한 이름과 동일한 이름끼리 충돌하는 것을 막을 수 있고, 범위지정연산자인 :: 를 통해서 이용할 수 있습니다.


'C++' 카테고리의 다른 글

Primitivetypes - 기본 타입  (0) 2019.02.26
Basic statement  (0) 2019.02.24
C++ 개요  (0) 2019.02.22
카테고리 개요  (0) 2019.02.22