<개인공부>/[C++]

[C++] 표준 입출력 std::cin, std::cout 정리 및 예제

BlockDMask 2021. 2. 2. 00:30
반응형

안녕하세요. BlockDMask 입니다. 
오늘은 C++ 표준 출력인 cout 에 대해서 알아보겠습니다.

<목차>
1. std::cout 기본 설명
2. std::cin 기본 설명

3. std::cin, std::cout 예제

 

 

1. C++ 표준 출력 cout 기본 설명


- 헤더파일

<iostream>

 

- C++ cout 기본 설명

C++의 표준 출력은 std::cout 을 이용합니다.

std::cout을 딱 보았을때 한가지 알아두셔야 할것은 "std::" std 네임스페이스에 속해 있다는 것 입니다.

cout 이름만 보아도 무언가를 출력하겠구나 하시겠죠? out 이니까?

cout은 쉬프트 연산자 << 를 이용해서 출력할 것을 출력합니다.

그래서 std::cout의 기본 모양은 이렇게 표현할 수 있을것 같습니다.

std::cout << [출력할 무언가];

C언어 printf를 하시다가 오신분들은? 출력할때 타입을 정해주는 서식문자열이 왜 없지? 하실수 있는데, C++의 표준 출력인 cout 에서는 서식문자를 사용하지 않아도 됩니다.

int num = 10; 해당 변수 값을 출력하고 싶다면
std::cout << num;
이런식으로 작성하면 됩니다.

실제 코드에서 한번 볼까요?

1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main(void)
{
    std::cout << "출력 ";
 
    int num = 99;
    std::cout << "숫자 : " << num;
 
    return 0;
}
cs

cout 예제

std::cout << "출력 ";
이런식으로 cout 과 << 쉬프트 연산자 뒤에 출력할 것을 집어 넣으면 출력이 됩니다.

std::cout << "숫자 : " << num과 같이
출력할 것이 여러개라면 << 쉬프트 연산자를 중첩해서 사용하면 됩니다.

결과 화면을 보면 "출력 "; 과 "숫자 : "가 개행이 되어있지 않고 그대로 한줄로 나와있는것을 볼 수 있습니다.
cout에서는 자동으로 개행을 해주지 않기 때문 따로 개행을 뜻하는 std::endl; 또는 개행 문자 '\n'을 사용하면 됩니다.

 

- C++ std::cout 개행 

std::cout 을 이용해서 개행을 하는 방법은 아래 두가지가 있습니다.
두 방법중 어느것을 사용해도 개행을 진행합니다.

1. 개행문자 '\n'를 이용하는 방법

2. 표준 출력의 개행 std::endl;을 이용하는 방법

바로 예제로 확인하고 넘어가시죠.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
int main(void)
{
    // '\n'
    std::cout << "cout 개행1" << "\n";
 
    // '\n'
    std::cout << "cout 개행2\n";
 
    // std::endl
    std::cout << "cout 개행3 " << std::endl;
 
    std::cout << "개행 끝";
 
    return 0;
}
cs

cout 개행 예제

**C언어에서는 printf를 이용해서 출력을 했지만, C++의 표준은 cout 입니다. 물론 printf를 이용해도 상관은 없습니다.

 

2. C++ 표준 입력 cin 기본 설명


- 헤더파일

<iostream>

헤더파일은 표준 출력과 동일하게 iostream 입니다.

 

- C++ cin 기본 설명

C++의 표준 입력은 std::cin을 통해서 진행합니다. std::cin의 기본 모양은 아래와 같습니다.

std::cin >> [입력 받을 변수];

cout의 쉬프트 연산자 << 이것과 반대로 cin에서는 >> 이쪽으로 쉬프트 연산자를 사용합니다.

쉬프트 연산자가 나온 후에는 사용자한테 입력받는 데이터를 저장할 변수를 지정해 줍니다.

그렇게 해서 입력을 받을 수 있습니다. 쉽고 간단하죠?

C언어의 scanf와 다르게 cin에서는 입력받을 데이터 타입을 알려주는 서식 문자열 %d, %c같은 것이 필요 없습니다.

주소를 나타내는 주소 연산자 &도 필요가 없습니다.

 

바로 예제를 볼까요?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int main(void)
{
    int num;
    std::string str;
 
    std::cout << "숫자 입력 : ";
    std::cin >> num;
 
    std::cout << "문자열 입력 : ";
    std::cin >> str;
    
    
 
    std::cout << "입력 받은 숫자는 " << num << "입니다." << std::endl;
    std::cout << "입력 받은 문자열은 " << str << "입니다." << std::endl;
    return 0;
}
cs

C++ cin 예제

이렇게 쉽게 cin을 이용해서 사용자로부터 데이터를 입력 받을 수 있습니다.

cin의 꼭 기억해야할 특징 3가지를 다시 정리해보겠습니다.
1. std::cin 에는 >> 이 쉬프트 연산자 사용
2. 데이터 타입을 나타내는 서식문자 필요없음
3. 주소를 나타내는 주소 연산자도 필요없음

 

3. C++ 표준 입출력 cin, cout 예제


3-1. cin, cout 과 네임스페이스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main(void)
{
    //std::cout => cout
    //std::endl => endl;
    cout << "std 네임스페이스 생략 가능" << endl;
 
 
    //std::cin => cin
    int num;
    cout << "입력 : ";
    cin >> num;
 
    cout << "입력 받은 것은 : " << num << endl;
    return 0;
}
cs

cout, cin 예제

using namespace std;
위 코드와같이 전역 using 지시어를 사용하게 되면 std::cout을 cout으로, std::cin을 cin으로, std::endl을 endl로만 작성해서 사용할 수 있습니다.

namespace (이름공간)에 대해서 궁금하시다면 [바로가기] 포스팅에서 확인하시면 됩니다.

 

 

3-2. C++ 입출력 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main(void)
{
    int result = 0;
    int num;
    for (int i = 0; i < 10++i)
    {
        cout << i + 1 <<"번째 숫자를 입력해 주세요 : ";
        cin >> num;
        result += num;
    }
 
    cout << "결과 : " << result << endl;
    
    return 0;
}
cs

cin, cout 예제

열개의 숫자를 받아서 다 더한 결과를 출력하는 코드를 작성해 보았습니다.

cout 을 이용해서 입력받는 모양을 만들어 주고
실제 입력은 cin >> num; 을 통해서 입력을 받는것을 볼 수 있습니다.

 

 

이렇게 C++의 표준 입출력 cin, cout 에 대해서 알아보았습니다.
감사합니다.

반응형