[C++] 입력 스트림(Input Stream)

Date:     Updated:

카테고리:

태그:

이 글은 C++ 입력 스트림(Input Stream)을 공부하고 정리한 글입니다

코드 예시

char name[25];
cin >> setw(25) >> name;
cin.clear();
cin.ignore(10);
cin.get(100);
cin.getline(100);

cin

  • cin 은 c의 scanf와 마찬가지로 char배열의 길이를 모르기 때문에 소유하지 않은 메모리를 덮어 쓸 수 있다
  • setw()를 이용해서 길이를 지정해주면 안전하다

입력 버리기(Discarding Input)

clear()

cin.clear();
  • clear() : 스트림을 좋은 상태(good state)로 돌려 줌

ignore()

cin.ignore();                   // 문자 1개를 버림
cin.ignore(10);                 // 문자 10개를 버림
cin.ignore(10, '\n');           // 문자 10개를 버림. 단, 그 전에 뉴라인(new line) 문자를 버리면 곧바로 멈춤
cin.ignore(LLONG_MAX, '\n');    // 최대 문자 수를 버림. 단, 그 전에 뉴라인(new line) 문자를 버리면 곧바로 멈춤
  • ignore() : 파일 끝에 도달하거나 지정한 수 만큼 문자를 버리면 멈춤

get()

cin.get(100);                // 99개 문자를 가져오거나 뉴라인 문자가 나올 때까지의 문자를 가져온다
cin.get(100, '#');           // 99개 문자를 가져오거나 '#' 문자가 나올 때까지의 문자를 가져온다
  • get() : 뉴라인 문자를 만나기 직전까지의 모든 문자를 가져옴. 뉴라인 문자는 입력 스트림에 남아있음

getline()

cin.getline(100);             // 99개 문자를 가져오거나 뉴라인 문자가 나올 때까지의 문자를 가져온다
cin.getline(100, '#');        // 99개 문자를 가져오거나 '#' 문자가 나올 때까지의 문자를 가져온다
  • get() : 뉴라인 문자를 만나기 직전까지의 모든 문자를 가져옴. 뉴라인 문자는 입력 스트림에서 버림


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기