• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

입력받은 string이 출력되지 않는 문제에 대한 질문

21.07.13 14:11 작성 조회수 123

0

이 코드를 실행해서 순서대로

jack jack

22 22

를 입력하면

이렇게 출력되는데

왜 22이 한 개만 출력되는 궁금합니다.

답변 1

답변을 작성해보세요.

1

안소님의 프로필

안소

2021.07.13

25번째 줄에 cin >> age; 을 써주셔서 그렇습니다. (질문자님께서 실수로 안지우신 것 같네요! 강의에선 이 부분 주석처리 하셨습니다.)

22 22 중 하나는 cin >> age 를 통해 age 에 들어가고 (cin 은 공백 단위로 입력을 받습니다. 즉, 22 22 를 입력했다면 가운데 공백을 기준으로 앞에 22만 입력을 받습니다. 나머지 22 는 입력 버퍼에 남아있게 되구요!)

26번째 줄에 있는 getline 이 또 입력 버퍼에 남아있던 22 를 또 age 에 입력하기 때문에

결론적으로 22 22 입력 하나로

age = 22;  // cin >> age

age = 22;  // getline(cin, age)

이렇게 두번 대입이 일어난거에요. 그럼 age 값은 22죠!

cin >> age 지우시면 원하시는대로 출력 되실거에요