ignore
-
[cin] 입력 실패를 처리하는 법개발/C·C++ 2021. 3. 29. 23:09
문자 하나씩만 입력하면 문제가 없는데, 두 개 이상 입력하면 버퍼에 남아 있는 것이 차례대로 출력된다. ab를 입력하면 a, b가 출력되고 abc를 입력하면 ab가 출력된다. 아직 버퍼에 c가 남아 있지만 cin 객체를 두 번 호출했기 때문에 a, b만 나온다. 문자를 얼마나 입력하든 최초 입력하는 문자 하나만 출력하고 싶다면 어떻게 해야 할까. 쉽게 생각해서 두 번째부터 등장하는 문자는 모두 무시하면 된다. cin에 ignore() 함수가 있다. 첫 번째 인자는 무시할 갯수를 넣으면 되는데 어느 길이의 문자를 넣을지 모르기 때문에 정수로 표현할 수 있는 가장 큰 값을 넣어주자. limits 헤더를 인클루드해서 다음과 같이 사용해주면 된다. streamsize는 long long으로 최소 64비트 정수를..