scanf 함수 관련 질문입니다.

gwpia0409 Reply 6 years 1 week ago
2단원 연습문제부터는 scanf함수가 필요한 거 같아서 찾아서 쓰고 있는데, 다음과 같은 경우에 이해가 가지 않아 질문드립니다! 우선 상황은 입력에 "5 c" 와 같이 숫자 5와 c를 순서대로 입력했을 때 5는 scanf를 통해서 n이라는 변수에 저장하고 싶고 c는 getchar를 통해서 c라는 변수에 저장하고 싶어 아래와 같은 코드를 짰습니다 . int main() { int n; char c; scanf("%d", &n); c = getchar(); printf("%d\n", n); printf("%c", c); return 0; } 그런데 출력해보니 "5 " 라고 출력되고, 예상했던 "5 c" 가 나오지 않았습니다. 아무래도 getchar가 scanf 뒤에서 어떤 문자부터 받느냐에서 문제가 생긴 것 같은데, 이러한 경우 문제를 어떻게 해결하면 좋을지 궁금합니다. scanf 뒤에 getchar를 통하여 문자를 받기는 힘든 것인가요?
onacloud Reply 6 years 1 week ago
getchar 함수는 공백도 입력으로 칩니다. 따라서 뒤의 char를 받고 싶다면 다음과 같이 getchar를 두번 호출하면 됩니다. scanf("%d", &n); c = getchar(); c = getchar();