ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [STL] iostream, std, 입출력(cin, cout)
    Algorithm/C++ 2019. 11. 5. 19:34

    C++에서 사용하는 표준 입출력 개체인 cout과 cin을 사용하려면 iostream 헤더파일을 include하여 std 네임 스페이스를 사용해야 한다.

    1
    2
    #include <iostream>
    using namespace std;

     

    1. iostream

    STL(Standard Template Library)에서 제공하는 클래스 중 하나로, 데이터 입출력 시에 사용하는 클래스이다.

     

    2. namespace

    namespace는 모든 식별자(변수, 함수, 형식 등의 이름)가 고유하도록 보장하는 코드 영역이다. 두개 이상의 독립된 코드가 함께 사용될 때 서로 이름이 충돌하는 문제를 방지하기 위해 namespace 키워드를 통해 독립된 namespace를 선언할 수 있다.

     

    3. std

    원래 C++ 설계 시에는 C++ 라이브러리의 모든 식별자(ex. cin, cout)를 직접 사용할 수 있었다. 하지만 이럴 경우, 사용자의 식별자 이름과 충돌할 수 있는 우려가 있고, 표준 라이브러리가 업데이트될 경우 이전 버전과 충돌이 일어나 이후 버전에서 컴파일이 되지 않을 우려가 있다. 그래서 C++에서는 표준 라이브러리의 모든 기능을 std namespace로 옮겼다.

     

    cin, cout을 사용한 간단한 예제를 살펴보자.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    using namespace std;
    #include <iomanip>
     
    int main()
    {
        int a;
        double pi = 3.14159;
        cin.sync_with_stdio(false);
        cin.tie(NULL); //cin의 실행 속도를 더 높여줌
        cin >> a; //scanf("%d", &a)
        cout << "Hello world!" << a << "aaaa" << 3 << setprecision(3<< pi; //cout chaining
        return 0;
    }
     

    위 코드는 cin을 통해 변수 a의 값을 입력받으면, a의 값과 pi의 값을 출력해주는 코드이다.

    본격적으로 cin을 통해 입력값을 받기 전에 cin.sync_with_studio(false); cin.tie(NULL)을 써준 이유는, cin의 실행 속도를 더 빠르게 하기 위해서이다. 

     

    cin을 이용하여 a에 입력값을 넣을 때에는 >> 기호를 사용한다.

    cout으로 변수값 및 문자열을 한꺼번에 여러 개 출력하려면 << 기호를 chaining하여 사용하면 된다.

    (setprecision(3) 함수는 유효 숫자를 설정해주는 함수로, printf("%.2f", pi)와 비슷한 의미이다.)

     

     

    [참고 자료]

    https://boycoding.tistory.com/171

    http://ehpub.co.kr/%EB%94%94%EB%94%A4%EB%8F%8C-c-3-%EC%9E%85%EC%B6%9C%EB%A0%A5-%EA%B0%9C%EC%9A%94-cin-cout/

     

     

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

    [백준][C++] 5052. 전화번호 목록  (0) 2020.10.02
    [STL] pair  (0) 2019.11.12
    [STL] vector  (0) 2019.11.05
Designed by Tistory.