안녕하세요. 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 |
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 |
**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 |
이렇게 쉽게 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 |
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 |
열개의 숫자를 받아서 다 더한 결과를 출력하는 코드를 작성해 보았습니다.
cout 을 이용해서 입력받는 모양을 만들어 주고
실제 입력은 cin >> num; 을 통해서 입력을 받는것을 볼 수 있습니다.
이렇게 C++의 표준 입출력 cin, cout 에 대해서 알아보았습니다.
감사합니다.
'<개인공부> > [C++]' 카테고리의 다른 글
[C++] 인라인 함수 (inline function) (1) | 2021.02.10 |
---|---|
[C++] 2진수 8진수 16진수 표기법, 자릿수 표기법 (0) | 2021.02.09 |
[C++] std::setw, std::setfill, std::left, std::right (입출력 형태 지정2) (0) | 2021.02.05 |
[C++] 8진수, 10진수 16진수 출력 (입출력 형태 지정 1) (1) | 2021.02.04 |
[C++] namespace 네임스페이스 정리 및 예제 (2) | 2021.02.01 |
[C++] override, final 키워드 (가상함수 관련 키워드)에 대해서 (0) | 2020.08.17 |
[C++] non-static data member init 에 대해서 (2) | 2020.08.10 |
[C++] enum class (scoped enum) 에 대해서 (5) | 2020.07.30 |