반응형
C scanf의 리턴값 무한루프 - 백준 알고리즘 오답노트 11721
1. scanf는 입력실패시 또는 EOF 라면 -1을 리턴한다. 하지만 이를 if문에
if( scanf ) { } 라고 구성하면 무한 루프를 돌게 된다.
-1 은 참 값이기 때문이다.
if ( scanf() == ? ) { } 라고 구성을 해야 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //11721 #include<cstdio> int main(){ char c[1000]; while( scanf("%10s",c) ==1 ) // scanf("%10s",c) 라면 EOF는 -1 리턴하여 while이 참이 되기 때문에 무한루프를 탈출하지 못함 { printf("%s\n",c); } return 0; } //FB1. scanf("%10s",c) 라면 EOF는 -1 리턴하여 while이 참이 되기 때문에 무한루프를 탈출하지 못함 | cs |
반응형
'알고리즘 > 백준[BOJ] 오답노트' 카테고리의 다른 글
C++ 무한루프 탈출 break continue - 백준 알고리즘 오답노트 10845 (0) | 2019.03.02 |
---|---|
C 반복for while 문 탈출 break냐 return - 백준 알고리즘 9012 (0) | 2019.03.02 |
C++ 비교함수 활용 여러 인자 비교하기 - 백준 오답노트 10825 (0) | 2019.03.02 |
C++ vector에 중복된 인자 제거하기 - 백준 알고리즘 오답노트 1181 (0) | 2019.03.02 |
C++ rotate 함수 - 백준 알고리즘 오답노트 10812 (0) | 2019.03.02 |