작성
·
190
0
main 함수에서 for구문이 있는데, scanf받고 바로 printf안하고 scanf를 n번만큼 받고 다음에 printf가 진행되는것 설명해주실수있으신가요?
제생각엔 스캔하나 받고 bool판정하고 printf진행하고 다시 스캔받을것 같아서요...
답변 2
1
저도 같은 의문이 생겨서 알아본 바로는 c언어 입출력 함수가 동작하는 방식 때문이라고 해요.
좀 더 자세히 이야기 하자면,
읽어올 때 white space(엔터, 스페이스) 단위로 읽고 입력은 엔터를 눌러야 끝납니다. 입력이 끝난 게 아니라면(즉 엔터가 아니라 스페이스로 입력을 계속 하고 있다면) 계속해서 입력을 요청한다. 조금 더 깊게는 버퍼라는 임시 저장 공간에 입력되고 있는 값들을 저장해둔다. 그리고 엔터가 눌리면 버퍼에 있는 것들을 차례대로 가져와 그때부터 다시 for문 반복이 재개되는 거죠.
입력할 때 스페이스가 아니라 엔터누르면서 입력해보세요. 그러면 생각하신 것처럼 출력될 거예요.
0