cin과 >> 연산자
C++에서는 표준 입력 스트림인 cin과 >> 연산자를 이용하여 사용자로부터 키를 입력받는다. cin과 >> 연산자는 <iostream> 헤더 파일에 선언되어 있으므로 프로그램 서두에는 다음 문이 필요하다.
#include <iostream>
using namespace std;
bool, char, short, int, long, float, double과 같이 기본 타입에 대해 입력이 가능하다. 아래와 같이 사용한다.
int width;
cin >> width;
char c;
cin >> c;
여러 개의 >> 연산자를 이용하여 여러 값을 입력 받을 수 있다. >> 연산자들은 왼쪽부터 오른쪽으로 순서대로 키보드로부터 입력받는다.
cout << "너비와 높이를 입력하세요>>";
cin >> width >> height;
cout << width << '\n' << height << '\n';
너비와 높이를 입력하세요>> 23 36
23
36
cin 객체
cin은 키보드와 C++ 응용프로그램을 연결하는 C++ 표준 입력 스트림 객체(standard input stream object)이다. 키보드로 입력되는 값들은 모두 cin 객체의 스트림 버퍼로 들어오며, 응용프로그램은 cin 객체로부터 입력된 키 값을 읽는다.
>> 연산자
>> 연산자는 스트림 추출 연산자(stream extraction operator)로 불리며 왼쪽 피연산자인 스트림 객체로부터 데이터를 읽어 오른쪽 피연산자에 지정된 변수에 삽입한다. 스트림 추출 연산자는 본래 정수를 쉬프트하는 C++의 기본 연산자이지만, <iostream> 헤더 파일에 스트림 추출 연산자로 재정의 되어있다.
C 언어와 차이점
C++에서는 C 언어와 달리 키 입력받는 변수를 다음과 같이 그대로 사용한다.
int width;
cin >> width; // (O)
cin >> &width; // (X) 주소값을 주어서는 안된다.
Enter 입력 시 변수에 키 값 전달
아래 코드에서 >> 연산자가 언제 키를 읽는지 알아보자.
int age;
cin >> age;
만약 19를 입력하기 위해 1을 입력하는 순간 정수 1이 age에 저장된다면 사용자는 age에 19를 입력시킬 수 없을 것이다. cin과 >> 연산자는 사용자의 키 입력이 다 끝났을 때 입력된 키를 정수로 변환하여 age에 저장한다. C++은 사용자의 키 입력이 끝났다는 사실은 Enter 키를 통해 인식한다.
사용자가 입력한 키들은 일차적으로 cin의 스트림 버퍼에 저장되며, Enter 키가 입력되면 >> 연산자가 cin의 입력 버퍼에서 키 값을 끌어내어 변수에 저장한다. 또한 키 입력 도중 Backspace 키를 치면 cin의 스트림 버퍼에 입력된 키를 제거할 수 있다. Enter 키를 입력하기 전까지는 사용자의 키 입력 상태가 완료된 상태가 아니므로, >> 연산자가 작동하기 위해서는 무조건 Enter 키를 입력해야 한다.
'Study > Programming Language' 카테고리의 다른 글
[C++] N진법 <-> 10진법 변환하는 방법 (0) | 2025.04.02 |
---|---|
[C++] 짝수/홀수 판단하는 방법 2가지 (0) | 2025.03.31 |
[C++] cout << 을 사용해 화면 출력하기 (0) | 2024.05.03 |
[C] typedef: typedef의 사용법과 특징, 구조체 활용 (2) | 2024.03.23 |
[C] 공용체(Union): 공용체 정의와 공용체 변수 선언, 초기화 (1) | 2024.03.23 |