~scanf("%d", &t) 로 바꿔보세요!
13701번 - 중복 제거
~은 not이구요, scanf는 성공적으로 받아온 수의 개수를 retrun value로, EOF를 읽거나 혹은 에러발생시에 -1를 return value로 가져요.
-1은 2진수로 1111 1111 ... 1111 이구요, ~을 붙이면 0000 0000 ... 0000이 돼서 0이란 값을 가지게 돼요!
그래서 ~scanf는 EOF를 받은경우 0을 반환해서 while문을 빠져나올 수 있게되는거에요.
그냥 scanf의 경우는 eof를 만나도 -1의 값을 가지기때문에 0이 아니라 다음 입력을 기다리게되고 루프안에서 빠져나올 수 없게되는거죠.
댓글을 작성하려면 로그인해야 합니다.
kthng 6년 전