Files
cppdraft_translate/cppdraft/ostream/unformatted.md
2025-10-25 03:02:53 +03:00

129 lines
4.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[ostream.unformatted]
# 31 Input/output library [[input.output]](./#input.output)
## 31.7 Formatting and manipulators [[iostream.format]](iostream.format#ostream.unformatted)
### 31.7.6 Output streams [[output.streams]](output.streams#ostream.unformatted)
#### 31.7.6.4 Unformatted output functions [ostream.unformatted]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L6913)
Each
unformatted
output function begins execution by constructing an object of classsentry[.](#1.sentence-1)
If that object returnstrue,
while converting to a value of typebool,
the function endeavors
to generate the requested output[.](#1.sentence-2)
If an exception is thrown during output, thenios_base::badbit is set[288](#footnote-288 "This is done without causing an ios_­base::failure to be thrown.") in*this's
error state[.](#1.sentence-3)
If(exceptions() & badbit) != 0 then the exception is rethrown[.](#1.sentence-4)
In any case, the unformatted output function ends by destroying thesentry object, then, if no exception was thrown, returning the value
specified for the unformatted output function[.](#1.sentence-5)
[🔗](#lib:put,basic_ostream)
`basic_ostream& put(char_type c);
`
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L6948)
*Effects*: Behaves as an unformatted output function (as described above)[.](#2.sentence-1)
After constructing a sentry object, inserts
the character c, if possible[.](#2.sentence-2)[289](#footnote-289 "Note that this function is not overloaded on types signed char and unsigned char.")
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L6961)
Otherwise, callssetstate(badbit) (which may throwios_base::failure ([[iostate.flags]](iostate.flags "31.5.4.4Flags functions")))[.](#3.sentence-1)
[4](#4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L6967)
*Returns*: *this[.](#4.sentence-1)
[🔗](#lib:write,basic_ostream)
`basic_ostream& write(const char_type* s, streamsize n);
`
[5](#5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L6978)
*Effects*: Behaves as an unformatted output function (as described above)[.](#5.sentence-1)
After constructing a sentry object, obtains
characters to insert from
successive locations of an array whose first element is designated bys[.](#5.sentence-2)[290](#footnote-290 "Note that this function is not overloaded on types signed char and unsigned char.")
Characters are inserted until either of the following occurs:
- [(5.1)](#5.1)
n characters are inserted;
- [(5.2)](#5.2)
inserting in the output sequence fails
(in which case the function callssetstate(badbit),
which may throwios_base::failure ([[iostate.flags]](iostate.flags "31.5.4.4Flags functions")))[.](#5.sentence-3)
[6](#6)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L7003)
*Returns*: *this[.](#6.sentence-1)
[🔗](#lib:flush,basic_ostream)
`basic_ostream& flush();
`
[7](#7)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L7014)
*Effects*: Behaves as an unformatted output function (as described above)[.](#7.sentence-1)
Ifrdbuf() is not a null pointer,
constructs a sentry object[.](#7.sentence-2)
If that object returns true when converted to a value of type bool the function
callsrdbuf()->pubsync()[.](#7.sentence-3)
If that function returns −1 callssetstate(badbit) (which may throwios_base::failure ([[iostate.flags]](iostate.flags "31.5.4.4Flags functions")))[.](#7.sentence-4)
Otherwise, if the sentry object returns false, does nothing[.](#7.sentence-5)
[8](#8)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L7030)
*Returns*: *this[.](#8.sentence-1)
[288)](#footnote-288)[288)](#footnoteref-288)
This is done without causing anios_base::failure to be thrown[.](#footnote-288.sentence-1)
[289)](#footnote-289)[289)](#footnoteref-289)
Note that this function is not overloaded on typessigned char andunsigned char[.](#footnote-289.sentence-1)
[290)](#footnote-290)[290)](#footnoteref-290)
Note that this function is not overloaded on typessigned char andunsigned char[.](#footnote-290.sentence-1)