본문 바로가기
c++/c++

[c++] 'cin.ignore()'

by ilp 2025. 3. 2.
반응형

기본 구조

  • 'istream' 에 정의 되어 있다.
  • 두개의 매개변수를 받을 수 있다.
istream& ignore(streamsize n = 1, int delim = EOF);
  • 'n (streasize)': 무시할 최대 문자수를 지정한다. 기본값은 1이다.
  • 'delim (int)': 입력을 멈출 문자를 지정한다. 기본값은 'EOF(End Of File: 파일의 끝또는 종료) 이다.

주 사용 목적

1. 버퍼 정리

  • 'cin'을 사용하고 남은 개행 문자('\n')를 제거 할때 사용한다.
  • 'cin'으로 입력 받고 남은 개행 문자를 그대로 두면, 다음 입력에서 개행 문자를 즉시 입력으로 처리한다.

2. 특정 문자까지 입력 건너뛰기:

  • 입력에서 특정 문자까지 입력을 무시하고 싶을 때
    (예: 사용자 입력에서 쉼표나 다른 구분자까지 모든 입력을 무시하고자 할 때 )

사용 예

  • 기본 사용: 'cin>>' 사용 후 버퍼에 남은 개행 문자 제거
int x;
cin >> x;
cin.ignore(); // 이 코드로 버퍼의 개행 문자를 무시합니다.

 

  • 한 줄 전체 무시: 사용자가 입력한 데이터의 나머지 부분을 무시하고 싶을 떄
cin.ignore(numeric_limits<streamsize>::max(), '\n');

사용자가 입력한 줄에서 남은 모든 문자를 무시하고, 다음 줄로 넘어간다.

'numeric_limits<streamsize>::max()' 'streamsize'타입의 최대값을 반환하여 '\n'가 나타날 때까지 무시한다.

 

  • 특정 문자까지 무시: 예를 들어 입력에서 첫 번째 쉼표까지 입력을 무시
cin.ignore(100, ',');

👆 쉼표(',')가 나타나거나 100개의 문자를 읽을 때까지 입력을 무시한다.


반응형

'c++ > c++' 카테고리의 다른 글

[c++] 알고리즘 문제 입출력 속도 향상 방법  (0) 2025.03.02
[c++] sort  (1) 2025.03.02
[c++] 팩토리얼 계산하기  (0) 2024.04.28
[c++] 소수점 자릿수 조절하기  (0) 2024.02.21
[c++]  (0) 2024.02.18