-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
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
Soobak
2023.06.25
안녕하세요, 답변 도우미 Soobak 입니다.
변수의 자료형과는 별개로 사용자가 키보드를 통해 값을 입력할 때, Enter
키를 눌러야 입력이 완료됩니다.
이 때, 입력 버퍼에는 실제 입력과 함께 개행 문자 '\n'
이 함께 담기게 됩니다.
따라서, cin >> age;
코드 라인에서는 입력한 숫자만 읽고 개행 문자 '\n'
은 입력 버퍼에 그대로 남아 있게 됩니다.
즉, cin.ignore()
을 통하여 버퍼에 남아있는 개행 문자를 제거해주지 않으면, getline()
함수가 버퍼에 남아있는 개행 문자 '\n'
을 읽고 바로 종료되는 것입니다.
답변 1