이름공간
변수
행위

입/출력 라이브러리

cppreference.com
< cpp

C++ 은 2가지 입/출력 라이브러리를 포함하고 있습니다: 객체 지향 방식 의 스트림 기반 입/출력 라이브러리와 C방식의 입/출력 함수 표준 집합

목차

[편집]스트림 기반 입/출력

스트림 기반 입/출력 라이브러리는 추상적인 입/출력 장치로 구조화되어 있습니다. 이 구조화된 장치들은 동일한 코드로 파일, 메모리 스트림 또는 임의의 동작(예를 들어, 압축)을 실시간으로 수행하는 어댑터 장치에 대한 입/출력을 동일하게 다룰 수 있도록 합니다.


대부분의 클래스는 템플릿화 되어 있어서 어떤 기본 문자 타입에도 적용할 수 있습니다. 대부분의 일반적인 기본 문자 타입 (char and wchar_t) 을 위해 몇몇 typedef 도 제공합니다. 클래스는 다음의 구조로 구조화되어 있습니다:

cpp/io/ios basecpp/io/basic ioscpp/io/basic istreamcpp/io/basic ifstreamcpp/io/basic istringstreamcpp/io/basic ostreamcpp/io/basic ofstreamcpp/io/basic ostringstreamcpp/io/basic fstreamcpp/io/basic stringstreamcpp/io/basic iostreamstd-io-complete-inheritance.svg

Inheritance diagram

Abstraction
<ios> 헤더에 정의됨.
형식 지정 플래그와 입/출력 예외를 관리합니다
(class)[edit]
임시 스트림 버퍼를 관리합니다
(class template)[edit]
<streambuf> 헤더에 정의됨.
raw device를 추상화합니다
(class template)[edit]
<ostream> 헤더에 정의됨.
추상 장치인 (std::basic_streambuf)를 감싸서
고수준의 출력 인터페이스를 제공합니다
(class template)[edit]
<istream> 헤더에 정의됨.
추상 장치인 (std::basic_streambuf)를 감싸서
고수준의 입력 인터페이스를 제공합니다
(class template)[edit]
추상 장치인 (std::basic_streambuf)를 감싸서
고수준의 입/출력 인터페이스를 제공합니다
(class template)[edit]
File I/O implementation
<fstream> 헤더에 정의됨.
raw 파일 장치(device)를 구현합니다
(class template)[edit]
고수준의 파일 스트림 입력 동작을 구현합니다
(class template)[edit]
고수준의 파일 출력 동작을 구현합니다
(class template)[edit]
고수준의 파일 스트림 입/출력 동작을 구현합니다
(class template)[edit]
String I/O implementation
<sstream> 헤더에 정의됨.
raw 문자 장치(string device)를 구현합니다
(class template)[edit]
고수준의 문자열 스트림 입력 동작을 구현합니다
(class template)[edit]
고수준의 문자열 스트림 출력 동작을 구현합니다
(class template)[edit]
고수준의 문자열 스트림 입/출력 동작을 구현합니다
(class template)[edit]
Array I/O implementations
<spanstream> 헤더에 정의됨.
고정 크기 문자 raw 버퍼 장치를 구현합니다
(class template)[edit]
고정 크기 문자 버퍼 입력 동작을 구현합니다
(class template)[edit]
고정 크기 문자 버퍼 출력 동작을 구현합니다
(class template)[edit]
고정 크기 문자 버퍼 입/출력 동작을 구현합니다
(class template)[edit]
<strstream> 헤더에 정의됨.
(deprecated in C++98)
raw 문자 배열 장치를 구현합니다
(class)[edit]
(deprecated in C++98)
문자 배열 입력 동작을 구현합니다
(class)[edit]
(deprecated in C++98)
문자 배열 출력 동작을 구현합니다
(class)[edit]
(deprecated in C++98)
문자 배열 입/출력 동작을 구현합니다
(class)[edit]
Synchronized output
<syncstream> 헤더에 정의됨.
동기화된 출력 장치 wrapper
(class template)[edit]
동기화된 출력 스트림 wrapper
(class template)[edit]

[편집]Typedefs

일반적인 문자 타입을 위해 아래의 typedef들을 제공합니다.:

typedef basic_ios<char> ios;typedef basic_ios<wchar_t> wios;   typedef basic_streambuf<char> streambuf;typedef basic_streambuf<wchar_t> wstreambuf;typedef basic_filebuf<char> filebuf;typedef basic_filebuf<wchar_t> wfilebuf;typedef basic_stringbuf<char> stringbuf;typedef basic_stringbuf<wchar_t> wstringbuf;typedef basic_syncbuf<char> syncbuf;// C++20typedef basic_syncbuf<wchar_t> wsyncbuf;// C++20typedef basic_spanbuf<char> spanbuf;// C++23typedef basic_spanbuf<wchar_t> wspanbuf;// C++23   typedef basic_istream<char> istream;typedef basic_istream<wchar_t> wistream;typedef basic_ostream<char> ostream;typedef basic_ostream<wchar_t> wostream;typedef basic_iostream<char> iostream;typedef basic_iostream<wchar_t> wiostream;   typedef basic_ifstream<char> ifstream;typedef basic_ifstream<wchar_t> wifstream;typedef basic_ofstream<char> ofstream;typedef basic_ofstream<wchar_t> wofstream;typedef basic_fstream<char> fstream;typedef basic_fstream<wchar_t> wfstream;   typedef basic_istringstream<char> istringstream;typedef basic_istringstream<wchar_t> wistringstream;typedef basic_ostringstream<char> ostringstream;typedef basic_ostringstream<wchar_t> wostringstream;typedef basic_stringstream<char> stringstream;typedef basic_stringstream<wchar_t> wstringstream;   typedef basic_osyncstream<char> osyncstream;// C++20typedef basic_osyncstream<wchar_t> wosyncstream;// C++20   typedef basic_ispanstream<char> ispanstream;// C++23typedef basic_ispanstream<wchar_t> wispanstream;// C++23typedef basic_ospanstream<char> ospanstream;// C++23typedef basic_ospanstream<wchar_t> wospanstream;// C++23typedef basic_spanstream<char> spanstream;// C++23typedef basic_spanstream<wchar_t> wspanstream;// C++23

[편집]Predefined standard stream objects

<iostream> 헤더에 정의됨.
reads from the standard C input stream stdin
(global object)[edit]
writes to the standard C output stream stdout
(global object)[edit]
writes to the standard C error stream stderr, unbuffered
(global object)[edit]
writes to the standard C error stream stderr
(global object)[edit]

[편집]I/O 처리기(Manipulator)

스트림 기반 입/출력 라이브러리는 스트림의 동작 제어를 위해 I/O 처리기(Manipulator) (e.g. std::boolalpha, std::hex, 등.)를 사용합니다

[편집]Types

다음의 보조 타입이 정의되어 있습니다.

<ios> 헤더에 정의됨.
어떤 파일 크기를 나타내더라도 충분한 파일/스트림의 상대 위치를 나타냅니다 (fpos부터의 오프셋)
(typedef)[edit]
입/출력 동작으로 교환된 문자의 개수나 입/출력 버퍼의 크기를 나타냅니다
(typedef)[edit]
스트림이나 파일 안에서의 절대적인 위치를 나타냅니다
(class template)[edit]

std::fpos<std::mbstate_t>를 위해 아래의 typedef 이름이 제공됩니다.

<iosfwd> 헤더에 정의됨.
Type Definition
streamposstd::fpos<std::char_traits<char>::state_type>
wstreamposstd::fpos<std::char_traits<wchar_t>::state_type>
u8streampos(C++20)std::fpos<std::char_traits<char8_t>::state_type>
u16streampos(C++11)std::fpos<std::char_traits<char16_t>::state_type>
u32streampos(C++11)std::fpos<std::char_traits<char32_t>::state_type>

[편집]Error category interface

<ios> 헤더에 정의됨.
(C++11)
the IO stream error codes
(enum)[edit]
identifies the iostream error category
(function)[edit]

[편집] C-style I/O

C++ 은 또한 std::fopen, std::getc와 같은 C에서 정의한 입/출력 함수를 포함합니다

close