std::ios_base - cppreference.com

From cppreference.com

Defined in header

<ios>

classios_base;The class ios_base is a multipurpose class that serves as the base class for all I/O stream classes. It maintains several kinds of data:

1) state information: stream status flags.

2) control information: flags that control formatting of both input and output sequences and the imbued locale.

3) private storage: indexed extensible data structure that allows both long and void* members, which may be implemented as two arbitrary-length arrays or a single array of two-element structs or another container.

Typical implementation holds member constants corresponding to all values of

fmtflags

,

iostate

,

openmode

, and

seekdir

shown below, member variables to maintain current precision, width, and formatting flags, the exception mask, the buffer error state, a resizeable container holding the callbacks, the currently imbued locale, the private storage, and a static integer variable for

xalloc()

.

Member functions

(constructor)

constructs the object
(protected member function)

[edit]

(destructor)

[virtual]

destructs the object
(virtual public member function)

[edit]

operator=

assigns to the stream
(public member function)

[edit]

Formatting

flags

manages format flags
(public member function)

[edit]

setf

sets specific format flag
(public member function)

[edit]

unsetf

clears specific format flag
(public member function)

[edit]

precision

manages decimal precision of floating point operations
(public member function)

[edit]

width

manages field width
(public member function)

[edit]

Locales

imbue

sets locale
(public member function)

[edit]

getloc

returns current locale
(public member function)

[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)

[edit]

iword

resizes the private storage if necessary and access to the long element at the given index
(public member function)

[edit]

pword

resizes the private storage if necessary and access to the void* element at the given index
(public member function)

[edit]

Miscellaneous

register_callback

registers event callback function
(public member function)

[edit]

sync_with_stdio

[static]

sets whether C++ and C I/O libraries are interoperable
(public static member function)

[edit]

Member classes

failure

stream exception
(public member class)

[edit]

Init

initializes standard stream objects
(public member class)

[edit]

Member types and constants

Type Explanation 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]

noreplace

(C++23)open in exclusive mode

[edit]

(typedef)

[edit]

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. 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. 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 operations: see

std::uppercase

[edit]

(typedef)

[edit]

state of the stream type The following constants are also defined:

(typedef)

[edit]

seeking direction type The following constants are also defined:

(typedef)

[edit]

specifies event type
(enum)

[edit]

callback function type
(typedef)

[edit]

Deprecated member types Type Explanation io_state(deprecated)integer type that may be used like iostateopen_mode(deprecated)integer type that may be used like openmodeseek_dir(deprecated)integer type that may be used like seekdirstreamoff(deprecated)unspecified type that may be used like off_type, not necessarily

std::streamoff

streampos(deprecated)unspecified type that may be used like pos_type, not necessarily

std::streampos

(until C++17)Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior

LWG 1357

(

N3110

) C++98 std::ios_base defined operator~, operator&
and operator| for types openmode, fmtflags and
iostate, violating the requirements of

BitmaskType

[1]

removed these definitions

A

BitmaskType

needs to support bitwise opertaions on its own. The bitwise operation support should not be provided externally.

See also