[C++] 입력 스트림(Input Stream)
카테고리: Cpp
태그: IO
이 글은 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()
: 뉴라인 문자를 만나기 직전까지의 모든 문자를 가져옴. 뉴라인 문자는 입력 스트림에서 버림
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기