i1004gy   2년 전

6603번 로또 문제 풀이 코드인데  28번 줄에 while(cin >> k && k)이 정확히 어떤 뜻인지 이해가 안되어서 질문 드립니다

정확히 어떤 문법인건가요?

bupjae   2년 전

cin 이 bool 문맥에 등장할 경우, 지금까지의 입출력 연산에 오류가 없었다면 true, 오류가 발생한 적이 있다면 false 로 평가됩니다.

(cin >> k && k) 를 풀어서 설명해 보면

1) cin 에서 k 를 읽어들인다.

2) cin 이 행한 입력 연산에 오류가 없는가? 오류가 있다면 while 문 종료

3) k 이 0 이 아닌가? k 가 0 이라면 while 문 종료

4) while 문 내부 실행

5) 1)로 되돌아간다

BOJ 에서는 "입력 연산 오류" == "EOF" 라고 생각하시면 됩니다.

EOF 는 입력 데이터의 끝에 도달한 상태에서 무언가를 더 읽으려고 시도할 떄 발생하는 오류입니다.

댓글을 작성하려면 로그인해야 합니다.