shyhero123   1년 전

코드를 아래와 같이 작성했습니다. 저렇게 하니 ctrl+z 누르니까 원래 전에 입력했던 a+b가 한 번 더 출력이 되더라고요?? 예를 들자면 실행하고 a와 b를 각각 1로 입력하고 a+b값이 출력되고 다음 ctrl+z를 누르면 아무것도 안나오고 종료되는 것이 아니라 a+b를 한 번 더 실행하던데 ctrl+z 누르면 break 때문에 아무런 값도 출력되지 않고 종료되는 것이 맞지 않나요?

결국은 if문을 11행 다음으로 놓으니까 정상적으로 되더라고요? 제가 지금 어느 부분을 잘못 알고 있는건가요? 알려주시면 감사하겠습니다.

possible   1년 전

아마 백준 내부에서는 eof를 실행 못하는 걸로 압니다.
그래서 while(cin>>a >> b) 이런 식으로 기술함으로써 eof를 체크하면서 변수 입력을 받는 걸로 알고 있습니다.

sapadol   1년 전

cin을 받고, 바로 검사를 해야하지 않나요? 이 코드대로면 eof이어도 a+b를 계산하게되고, 버퍼를 flush하니 cin.eof()==true 일 수가 없을듯 싶어요

possible   1년 전

while(cin>> a >>b) 이런식으로 쓰게 되면 cin을 못 할 때는 반복문을 시작조차 안 합니다

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