본문 바로가기
C++/한 줄 정리

cin 입력 후 다른 타입의 입력 시 꼭 cin.ignore를 해줘야 한다

by tokkiC 2022. 6. 21.

정수형 cin을 입력 시, 숫자가 입력 버퍼에 저장되지 않고 바로 변수에 저장이 된다

하지만 문자열을 cin으로 입력 시, 입력 버퍼에 저장한 문자를 읽어서 변수로 저장한다

정수형 변수에 입력중에 문자열 변수가 입력이 되면 문자는 입력버퍼에 저장되고

cin은 이 버퍼의 문자를 정수형 변수에 저장하려고 하므로 정상 저장이 되지않고 에러가 나는 것이다

문자열 입력 시에도 \n 이 입력 버퍼에 남아서 문제가 되곤하니

 

이전 cin 사용 후 cin 이나 getline 등으로 새로운 자료형의 입력을 받을 때에는 항상

cin.ignore() 를 사용해서 입력버퍼를 비워주고 사용하자

댓글