해결된 질문
작성
·
182
0
string bufferflush;
getline(cin, bufferflush);
이 부분에서 질문이 있는데요.
이 부분을 제가 이해하기로는 cin을 수행할 때 \n부분 전까지만 입력을 받고 변수에 할당한 후 \n은 그대로 cin 입력 버퍼에 남기 때문에 저걸 없애기 위해서 string bufferflush를 선언한 후 getline(cin, bufferflush)를 수행한다고 이해가 되는데요.
제가 알기로는 cin.ignore()도 입력 버퍼를 한 개 지우는 역할을 한다고 들었는데 그냥 cin.ignore()로 대체하면 두 줄짜리 코드를 그냥 간단하게 한 줄로 끝낼 수 있는데 이게 더 효율적이지 않나 싶어서 질문을 드립니다.
답변 1
1
안녕하세요 성우님 ㅎㅎ
저도 cin.ignore()을 알고 있는데요. ㅎㅎ
그게.. 안될때가 있습니다.
저도 성우님이 이야기 하신 것처럼 알고 있는데 이상하게 안될 때가 있습니다.
따라서 그냥 특정한 정수를 받고 그 정수를 기반으로 많은 줄을 getline으로 받을 때는 다음과 같은 코드로 하시는게 좋습니다.
string bufferflush;
getline(cin, bufferflush);
감사합니다.