vyrldnd   6년 전

하도 안풀려서 구글링해서 답을 올렸는데요.

while (~scanf("%c", &c)) 이부분의 동작하는 역할을 좀 설명해주실수 있을까요 ..ㅠㅠ

너무 궁금해서요... 자세히 설명좀 부탁드릴게요 ㅠㅠ

jwg8679   6년 전

~는 비트를 뒤집는 연산자입니다.

scanf는 성공적인 스캔에서는 1을 리턴하지만 아닐 경우에는 0을 리턴하는 함수입니다.

c 언어에서는 while 루프 안에 숫자가 들어갈 경우, 0은 true로, 나머지는 false로 취급합니다.

그렇다면 저 코드는 더 이상 읽을 수 없을때까지, 즉 성공적이지 않은 스캔이 될 때까지 모든 캐릭터를 읽은 다음에 출력하는 코드가 됩니다.

왜냐하면 성공적인 스캔에서는 1이 리턴값이기 때문에 0이 될 것이고 성공적이지 않은 스캔에서는 0이 리턴값이기 때문에 1이 될 것이기 때문이죠

vyrldnd   6년 전

감사합니다. 많은 도움이 되었습니다.


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