123 공백 첫 번째 수신 문자는 문자형이므로' 1' 23 만 받을 수 있고 아직 버퍼에 있습니다. 이때 I 변수는 10 에서 플라스틱 데이터만 받으면 됩니다. 그래서 23 은 I 23 에 할당되고 그 뒤에 공백이 오면 멈춥니다.
이후 S 는 버퍼에서 문자열 456 을 받고 뒤에는 공백 수신이 중지되기 때문에 마지막 답은 1, 23,456 입니다.
세 번째 scanf 가 scanf ("%[\ n] ",s) 로 변경되면 대답은 세 번째여야 한다 (456 과 789 사이에는 쉼표가 없다)
% [\n] 문자에서 문자까지의 모든 문자를 \n 받습니다. 처음에는 scanf 가 공백을 허용하지 않았습니다. 공백이 발견되면 null 로 간주되어 다음 문자 수락을 중지하지만 입력을 제어하면 공백이 수신됩니다. 사실 gets 함수를 사용하여 수신할 수도 있고, gets 도 공백을 받을 수 있습니다.