std::basic_istream
std::basic_istream (입력 스트림)
문자 스트림에 대한 고수준 입력 연산을 제공하는 클래스 템플릿이에요. 형식화·비형식화 입력을 지원해요. 기반 basic_streambuf의 인터페이스로 구현돼요.
출처: cppreference
본문
<istream> 헤더에 정의돼 있어요.
template<
class CharT,
class Traits = std::char_traits<CharT>
> class basic_istream : virtual public std::basic_ios<CharT, Traits>;
클래스 템플릿 basic_istream은 문자 스트림에 대한 고수준 입력 연산을 제공해요. 지원하는 연산에는 형식화 입력(예: 정수 값, 공백으로 구분된 문자·문자열)과 비형식화 입력(예: 원시 문자·문자 배열)이 있어요. 이 기능은 basic_ios 기반 클래스를 통해 접근하는 기반 basic_streambuf 클래스가 제공하는 인터페이스로 구현돼요. 대부분의 구현에서 basic_istream의 상속되지 않은 유일한 데이터 멤버는 basic_istream::gcount()가 돌려주는 값이에요.
공통 문자 타입 typedef
std::istream—std::basic_istream<char>std::wistream—std::basic_istream<wchar_t>
전역 객체
표준 라이브러리는 두 개의 전역 basic_istream 객체를 제공해요. std::cin(std::basic_istream<char>, 표준 C 입력 스트림 stdin에 쓰기)과 std::wcin.
멤버 함수
- (constructor / destructor) — 객체 생성·파괴(
rdbuf를 소유하는지 등). - operator>> — 형식화 입력.
- get — 문자·문자열 읽기.
- getline — 한 줄 읽기.
- read — 고정 크기 읽기.
- readsome — 사용 가능한 만큼 읽기.
- gcount — 마지막 입력 연산이 읽은 문자 수.
- ignore — 문자 건너뛰기.
- peek — 문자 미리보기.
- unget / putback — 문자 되돌리기.
- seekg / tellg — 입력 위치 조정·조회.
- sync — 버퍼 동기화.
예제
#include <sstream>
#include <iostream>
int main()
{
std::istringstream s("42 3.14");
int i; double d;
s >> i >> d; // 형식화 입력
std::cout << i << ' ' << d << '\n'; // "42 3.14"
}