##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::basic_istream

From cppreference.com
< cpp‎ | io

Defined in header `<istream>` |  |
template< class CharT, class Traits = std::char_traits<CharT> > class basic_istream : virtual public std::basic_ios<CharT, Traits> |  |

The class template `basic_istream` provides support for high level input operations on character streams. The supported operations include formatted input (e.g. integer values or whitespace-separated characters and characters strings) and unformatted input (e.g. raw characters and character arrays). This functionality is implemented in terms of the interface provided by the underlying `basic_streambuf` class, accessed through the `basic_ios` base class. The only non-inherited data member of `basic_istream`, in most implementations, is the value returned by `basic_istream::gcount()`.

Inheritance diagram

Two specializations for common character types are defined:

Defined in header `<istream>`
Type | Definition
`istream` | basic_istream<char>
`wistream` | basic_istream<wchar_t>

### [edit] Global objects

Two global basic_istream objects are provided by the standard library.

Defined in header `<iostream>`
cin wcin | reads from the standard C input stream stdin (global object) [edit]

### [edit] Member types

Member type | Definition
`char_type` | CharT[edit]
`traits_type` | Traits[edit]
`int_type` | Traits::int_type[edit]
`pos_type` | Traits::pos_type[edit]
`off_type` | Traits::off_type[edit]

### [edit] Member functions

(constructor) | constructs the object (public member function) [edit]
(destructor) [virtual] | destructs the object (virtual public member function) [edit]
operator= (C++11) | replaces the buffer object (protected member function) [edit]
##### Formatted input
operator>> | extracts formatted data (public member function) [edit]
##### Unformatted input
get | extracts characters (public member function) [edit]
peek | reads the next character without extracting it (public member function) [edit]
unget | unextracts a character (public member function) [edit]
putback | puts character into input stream (public member function) [edit]
getline | extracts characters until the given character is found (public member function) [edit]
ignore | extracts and discards characters until the given character is found (public member function) [edit]
read | extracts blocks of characters (public member function) [edit]
readsome | extracts already available blocks of characters (public member function) [edit]
gcount | returns number of characters extracted by last unformatted input operation (public member function) [edit]
##### Positioning
tellg | returns the input position indicator (public member function) [edit]
seekg | sets the input position indicator (public member function) [edit]
##### Miscellaneous
sync | synchronizes with the underlying storage device (public member function) [edit]
swap (C++11) | swaps stream objects, except for the associated buffer (protected member function) [edit]

### [edit] Member classes

sentry | implements basic logic for preparation of the stream for input operations (public member class) [edit]

### [edit] Non-member functions

operator>>(std::basic_istream) | extracts characters and character arrays (function template) [edit]

## Inherited from std::basic_ios

### Member types

Member type | Definition
`char_type` | CharT
`traits_type` | Traits
`int_type` | Traits::int_type
`pos_type` | Traits::pos_type
`off_type` | Traits::off_type

##### State functions
good | checks if no error has occurred i.e. I/O operations are available (public member function of `std::basic_ios`) [edit]
eof | checks if end-of-file has been reached (public member function of `std::basic_ios`) [edit]
fail | checks if a recoverable error has occurred (public member function of `std::basic_ios`) [edit]
bad | checks if a non-recoverable error has occurred (public member function of `std::basic_ios`) [edit]
operator! | checks if an error has occurred (synonym of fail()) (public member function of `std::basic_ios`) [edit]
operator void*operator bool (until C++11)(since C++11) | checks if no error has occurred (synonym of !fail()) (public member function of `std::basic_ios`) [edit]
rdstate | returns state flags (public member function of `std::basic_ios`) [edit]
setstate | sets state flags (public member function of `std::basic_ios`) [edit]
clear | clears error and eof flags (public member function of `std::basic_ios`) [edit]
##### Formatting
copyfmt | copies formatting information (public member function of `std::basic_ios`) [edit]
fill | manages the fill character (public member function of `std::basic_ios`) [edit]
##### Miscellaneous
exceptions | manages exception mask (public member function of `std::basic_ios`) [edit]
imbue | sets the locale (public member function of `std::basic_ios`) [edit]
rdbuf | manages associated stream buffer (public member function of `std::basic_ios`) [edit]
tie | manages tied stream (public member function of `std::basic_ios`) [edit]
narrow | narrows characters (public member function of `std::basic_ios`) [edit]
widen | widens characters (public member function of `std::basic_ios`) [edit]

## Inherited from std::ios_base

### Member functions

##### Formatting
flags | manages format flags (public member function of `std::ios_base`) [edit]
setf | sets specific format flag (public member function of `std::ios_base`) [edit]
unsetf | clears specific format flag (public member function of `std::ios_base`) [edit]
precision | manages decimal precision of floating point operations (public member function of `std::ios_base`) [edit]
width | manages field width (public member function of `std::ios_base`) [edit]
##### Locales
imbue | sets locale (public member function of `std::ios_base`) [edit]
getloc | returns current locale (public member function of `std::ios_base`) [edit]
##### Internal extensible array
xalloc [static] | returns a program-wide unique integer that is safe to use as index to pword() and iword() (public static member function of `std::ios_base`) [edit]
iword | resizes the private storage if necessary and access to the long element at the given index (public member function of `std::ios_base`) [edit]
pword | resizes the private storage if necessary and access to the void* element at the given index (public member function of `std::ios_base`) [edit]
##### Miscellaneous
register_callback | registers event callback function (public member function of `std::ios_base`) [edit]
sync_with_stdio [static] | sets whether C++ and C IO libraries are interoperable (public static member function of `std::ios_base`) [edit]
##### Member classes
failure | stream exception (public member class of `std::ios_base`) [edit]
Init | initializes standard stream objects (public member class of `std::ios_base`) [edit]

### Member types and constants
Type | Explanation
openmode | stream open mode type The following constants are also defined:
Constant | Explanation[edit]
`app` | seek to the end of stream before each write[edit]
`binary` | open in binary mode[edit]
`in` | open for reading[edit]
`out` | open for writing[edit]
`trunc` | discard the contents of the stream when opening[edit]
`ate` | seek to the end of stream immediately after open[edit]
(typedef) [edit]
fmtflags | formatting flags type The following constants are also defined:
Constant | Explanation[edit]
`dec` | use decimal base for integer I/O: see std::dec[edit]
`oct` | use octal base for integer I/O: see std::oct[edit]
`hex` | use hexadecimal base for integer I/O: see std::hex[edit]
`basefield` | dec|oct|hex|0. Useful for masking operations[edit]
`left` | left adjustment (adds fill characters to the right): see std::left [edit]
`right` | right adjustment (adds fill characters to the left): see std::right [edit]
`internal` | internal adjustment (adds fill characters to the internal designated point): see std::internal [edit]
`adjustfield` | left|right|internal. Useful for masking operations [edit]
`scientific` | generate floating point types using scientific notation, or hex notation if combined with fixed: see std::scientific [edit]
`fixed` | generate floating point types using fixed notation, or hex notation if combined with scientific: see std::fixed [edit]
`floatfield` | scientific|fixed|(scientific|fixed)|0. Useful for masking operations [edit]
`boolalpha` | insert and extract bool type in alphanumeric format: see std::boolalpha [edit]
`showbase` | generate a prefix indicating the numeric base for integer output, require the currency indicator in monetary I/O: see std::showbase [edit]
`showpoint` | generate a decimal-point character unconditionally for floating-point number output: see std::showpoint [edit]
`showpos` | generate a + character for non-negative numeric output: see std::showpos [edit]
`skipws` | skip leading whitespace before certain input operations: see std::skipws [edit]
`unitbuf` | flush the output after each output operation: see std::unitbuf [edit]
`uppercase` | replace certain lowercase letters with their uppercase equivalents in certain output output operations: see std::uppercase [edit]
(typedef) [edit]
iostate | state of the stream type The following constants are also defined:
Constant | Explanation[edit]
`goodbit` | no error [edit]
`badbit` | irrecoverable stream error [edit]
`failbit` | input/output operation failed (formatting or extraction error) [edit]
`eofbit` | associated input sequence has reached end-of-file [edit]
(typedef) [edit]
seekdir | seeking direction type The following constants are also defined:
Constant | Explanation[edit]
`beg` | the beginning of a stream [edit]
`end` | the ending of a stream [edit]
`cur` | the current position of stream position indicator [edit]
(typedef) [edit]
event | specifies event type (enum) [edit]
event_callback | callback function type (typedef) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_istream&oldid=57630"