알고리즘/백준[BOJ] 오답노트

C scanf의 리턴값 무한루프 - 백준 알고리즘 오답노트 11721

플라즈밍 2019. 3. 2. 14:05
반응형

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];
    whilescanf("%10s",c) ==1  ) //  scanf("%10s",c) 라면 EOF는 -1 리턴하여 while이 참이 되기 때문에 무한루프를 탈출하지 못함
    {
        printf("%s\n",c);
    }
    return 0;
}
 
//FB1.  scanf("%10s",c) 라면 EOF는 -1 리턴하여 while이 참이 되기 때문에 무한루프를 탈출하지 못함
 
cs


반응형