pupafafa   4년 전

map을 입력받고 나서 출력하면 맵이 이상하게 출력됩니다.

다른 분들의 코드를 확인해봤는데

scanf("%c",map[i][j]) 에서 %c앞에 공백이 있는것을 확인했습니다.

그래서 공백을 넣어서 다시 map을 출력해서 확인해 봤는데 이번엔 제가 입력한대로 맵이 출력됐습니다.

" %c"처럼 %c앞에 공백을 넣어주면 어떤작업이 이루어지는지 여쭤보고싶어요..

djm03178   4년 전

여기만 보여주면 안 되고, 그 앞부분이 중요합니다.

아마도 %d로 정수를 입력받으셨을 텐데, 말 그대로 정수만 입력받는 서식이므로 그 뒤의 개행 문자는 scanf가 읽지 않고 건너뜁니다.

그런데 %c는 개행 문자도 읽는 서식이므로 거기서 안 읽고 남겨둔 개행 문자를 같이 읽어버리는 것입니다. 또한 이 줄의 마지막도, 그 다음 줄의 마지막도 다 마찬가지입니다.

공백을 넣는 건 이런 화이트스페이스들을 모두 건너뛰라는 지시입니다.

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