• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

4.6 14:00 예제. int 입력인데 왜 퍼버에 남아있나요?

23.06.24 15:55 작성 조회수 247

1

4.6 14:00 예제에 int age에 값을 1 입력 했는데 왜 그 값이 string에 넘어가는지 이해가 안됩니다. 이전 예제의 string name;에 jack jack을 입력한 경우는 띄어쓰기 때문에 버퍼에 jack이 남아있는 것은 이해를 했습니다. 그러나 int age;에 1을 입력하면 버퍼에 값이 안 남아 있어야 하는 것 아닌가요?

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2023.06.25

안녕하세요, 답변 도우미 Soobak 입니다.

변수의 자료형과는 별개로 사용자가 키보드를 통해 값을 입력할 때, Enter 키를 눌러야 입력이 완료됩니다.
이 때, 입력 버퍼에는 실제 입력과 함께 개행 문자 '\n' 이 함께 담기게 됩니다.
따라서, cin >> age; 코드 라인에서는 입력한 숫자만 읽고 개행 문자 '\n' 은 입력 버퍼에 그대로 남아 있게 됩니다.

즉, cin.ignore() 을 통하여 버퍼에 남아있는 개행 문자를 제거해주지 않으면, getline() 함수가 버퍼에 남아있는 개행 문자 '\n' 을 읽고 바로 종료되는 것입니다.