rjffjsorl12   7년 전

예전에 인터넷참고하면서 문제풀어서 오픈된 코드보고 공부하고 있는데 ..

문자열 공부중 scanf는 띄어쓰기 단위는 못받는걸로아는데  이코드는 어떻게 되는건지 .. 이해할수가없네요~~..

설명좀 부탁드립니다...

plzrun   7년 전

띄어쓰기 단위는 못받는다는건 scanf("%s" ...)를 생각하신 것 같네요.

%c로 모든 걸 다 하나씩 받을 수 있다고 생각하시면 됩니다.


그리고 scanf()는 입력을 잘 받으면 1을 리턴하고 아니면 -1을 리턴해요

-1은 EOF에 해당하는데 테스트 해보시려면 입력에 ctrl+d를 눌러보시면 알 수 있습니다. ctrl+d가 EOF(End Of File) 이거든요

그럼 -1은 이진수로 표기하면 전부 11111111이니까 (8비트까지만 표현할게요) 여기에 ~(not)연산을 하면 전부 0이 되겠지요. 즉, EOF들어오면 입력을 반복문을 빠져나오게 됩니다.

그럼 저 구문은 scanf("%c",&c);로 어떤 입력을 문자형태로 받을건데요. EOF가 되기전까지 받겠다는 뜻이 됩니다.

그럼 반복문 빠져나오기 전까지는 전부 printf()로 받은 문자들을 출력해주면 되겠죠 :)

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