cjw0672   1년 전

여기 문제만 보면 입력한대로 출력하라는데 그건 쉬운데, 내가 친게 끝났다는 것을 정해야될텐데

그걸 어떻게 정해야하는거죠??

onjo0127   1년 전

구글에 EOF를 검색해보세요

gallopsys   1년 전

EOF(End of File)를 한 번 참조해보세요.

scanf의 반환형은 int인데, 아무 인자도 입력되지 않을 경우 -1을 반환하고, cin 객체의 경우 eof 비트를 체크하여 해당하는 값을 내놓게 됩니다.

while(~scanf("%s",str)){

    //출력

}

이런식으로 해주셔야 할 것 같습니다.

scanf는 반환값이 있는데, 이 반환값은 '입력받은 인자의 수'입니다.

이때 입력이 되지 않으면 EOF(-1)을 반환합니다.

while문에 ~연산자는 비트를 모두 바꾸는 연산자입니다.

예를 들어, ~0000100는 1111011이 됩니다.

-1은 비트값으로 11111111 11111111 11111111 11111111 인데, ~연산을 하면 모두 0이 됩니다.

그러므로 입력이 들어오지 않으면 자동으로 while문을 빠져나오게 됩니다.

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