본문 바로가기

Algorithm 문제 풀이/C++

[C++] 데이터 입력 받기

C는 데이터를 입력받을 때 scanf를 사용하지만, C++은 std::cin을 사용합니다.

출력과 마찬가지로 입력에서도 별도의 서식 지정이 불필요합니다.

 

입력의 기본 구성

std::cin >> '변수'

(cin : 객체, >>: 입력 연산자)

 

 

코드를 통해 알아봅시다!

# include <iostream>

int main(void) {
	int val1;
	std::cout << "첫 번째 숫자 입력: ";
	std::cin >> val1;

	int val2;
	std::cout << "두 번째 숫자 입력: ";
	std::cin >> val2;

	int result = val1 + val2;
	std::cout << "덧셈결과: " << result << std::endl;

	return 0;
}

결과

숫자 2개를 입력 받고 그 숫자를 더한 결과를 출력하는 코드입니다.

 

  • 자료형이 정수인 변수를 선언하고 std::cout을 사용해 숫자를 입력 받고 있습니다. 이때 출력연산자인 '<<'과 입력연산자인 '>>'를 헷갈리지 않게 주의하세요!
  • 문자열과 변수를 한 줄에 출력하려면 '<<'를 통해 문자열과 변수를 분리해주어야 합니다.

 

 

또 다른 예시를 살펴보겠습니다.

 

# include <iostream>

int main(void) {
	int val1, val2;
	int result = 0;
	std::cout << "두 개의 숫자 입력: ";
	std::cin >> val1 >> val2;

	if (val1 < val2) {
		for (int i = val1 + 1; i < val2; i++)
			result += i;
	}
	else {
		for (int i = val2 + 1; i < val1; i++)
			result += i;
	}

	std::cout << "두 수 사이의 정수 합: " << result << std::endl;
	return 0;
}

결과

두 개의 숫자를 입력하고 그 사이에 있는 숫자를 모두 더하는 코드입니다.

 

  • std::cin을 통해서 입력되는 데이터의 구분은 스페이스 바, 엔터, 탭과 같은 공백을 통해서 이루어집니다.
  • 2개의 데이터의 입력을 받으려면 변수를 2개 선언하고 std::cin >> '변수1' >> '변수2' 와 같이 작성하면 됩니다.

 

 

배열 기반의 문자열 입출력은 어떻게 해야할까요?

 

문자열 또한 숫자와 마찬가지로 변수를 선언하여 입력을 받고 출력하면 됩니다.

 

코드를 통해 구체적으로 알아봅시다!

 

#include <iostream>

int main(void) {
	char name[100];
	char lang[200];

	std::cout << "이름은 무엇입니까?";
	std::cin >> name;

	std::cout << "좋아하는 프로그래밍 언어는 무엇인가요?";
	std::cin >> lang;

	std::cout << "내 이름은 " << name << "입니다.\n";
	std::cout << "제일 좋아하는 언어는 " << lang << "입니다." << std::endl;
	return 0;
}

결과

문자열을 입력 받고 출력하는 코드입니다.

 

  • 문자열을 입력 받기 위해 char형을 통해 변수를 선언하였고 std::cin을 사용하여 입력을 받았음을 볼 수 있습니다.

 


정리

  1. std::cin : 표준 입력
  2. 입력하려고 하는 것의 자료형으로 변수를 선언하고 입력 받으면 된다.