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::istreamstd::basic_istream<char>
  • std::wistreamstd::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"
}

더 알아보기 (Learn more)

cppreference