본문 바로가기

C++

[C++] 입력 종료 판별

반응형

조건 판별에 cin을 사용하면 stream의 상태를 판별할 수 있다.

이때 조건을 판별하는 것뿐만 아니라 입력 값을 변수에 저장하는 역할까지 수행한다.

 

while (cin >> A) {
	...
}

 

cin으로 입력을 받은 후, 입력값을 A에 저장하면 while 반복문이 실행된다(true).

그러나 입력을 받지 않거나, A 변수 타입과 맞지 않는 값이 입력되면 while 반복문은 실행되지 않는다(false).

 

그리고 '>>' 연산자는 왼쪽 피연산자를 반환하기 때문에

위의 while 반복문을 아래와 같이 정리할 수 있다.

 

cin >> A;
while (cin) {
	...
}

 

즉, 'cin >> A' 입력은 cin >> A를 실행한 다음 cin의 값을 요청하는 것과 같다.

 

 

※ 입력 스트림을 조건 판별에 사용하면 다음과 같은 경우는 거짓이 된다.

1. EOF에 도달하였을 경우

2. 변수이 타입과 맞지 않는 입력을 받았을 경우

3. 시스템이 입력 장치에서 하드웨어 장애를 감지했을 경우

 

 

 

출처: Accelerated C++: C++를 C++ 답게 배우는 16가지 방법

반응형

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

[C++] 절댓값: abs();  (0) 2020.05.23
[C++] 최솟값: std::min(Left, Right);  (0) 2020.05.17
[C++] 입력: std::cin.tie(NULL);  (0) 2020.05.05
[C++] std::ios_base::sync_with_stdio(false);  (0) 2020.05.05
[C++] struct tm {};  (0) 2020.03.29