반응형
조건 판별에 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 |