Introduction
scanf는 성공적으로 받아온 포맷문자의 수를 return합니다.
만약 에러가 발생하거나 EOF(End of File)을 만나면 -1을 리턴합니다.
EOF는 콘솔에서 ctrl + Z or ctrl + D로 입력이 가능합니다.
문자열을 끝날 때 까지 입력 받는 방법
1. while (scanf("%d", &n) != EOF)
2. while (scanf("%d", &n) != -1)
3. while (~scanf("%d", &n))
EOF는 -1을 나타내므로 1과 2는 같은 방법입니다.
3번의 ~는 NOT입니다.
-1은 2진수로 표현하면 1111 1111 ... 1111 입니다.
-1에 ~를 붙이면 0000 0000 ... 0000 즉 0이 됩니다.
그래서 scanf로 EOF(-1)을 받으면 0을 반환해서 while문을 빠져나올 수 있습니다.
References
http://donggod.tistory.com/55
제 글이 도움이 되셨다면 간단하게 '공감', '댓글' 부탁드립니다!
'Problem Solving' 카테고리의 다른 글
2019 카카오 신입 공채 1차 코딩 테스트 문제 풀이 Python (0) | 2018.11.23 |
---|
댓글