int_type get(); | (1) | |
basic_istream& get( char_type& ch ); | (2) | |
basic_istream& get( char_type* s, std::streamsize count ); | (3) | |
basic_istream& get( char_type* s, std::streamsize count, char_type delim ); | (4) | |
basic_istream& get( basic_streambuf& strbuf ); | (5) | |
basic_istream& get( basic_streambuf& strbuf, char_type delim ); | (6) |
Extracts character or characters from stream.
All versions behave as UnformattedInputFunctions. After constructing and checking the sentry object, these functions perform the following:
Traits::eof()
and sets failbit
and eofbit
.ch
if available. Otherwise, leaves ch
unmodified and sets failbit
and eofbit
. Note that this function is not overloaded on the types signed char
and unsigned char
, unlike the formatted character input operator>>.get(s, count, widen('\n'))
, that is, reads at most count-1
characters and stores them into character string pointed to by s
until '\n'
is found.s
. Characters are extracted and stored until any of the following occurs:count-1
characters have been stored setstate(eofbit)
is called) c
equals delim
, as determined by Traits::eq(c, delim)
. This character is not extracted (unlike basic_istream::getline()
) setstate(failbit)
. In any case, if count>0
, a null character (CharT()
is stored in the next successive location of the array.get(strbuf, widen('\n'))
, that is, reads available characters and inserts them to the given basic_streambuf
object until '\n'
is found.basic_streambuf
object. Characters are extracted and inserted into strbuf
until any of the following occurs:c
equals delim
, as determined by Traits::eq(c, delim)
. This character is not extracted. setstate(failbit)
. All versions set the value of gcount()
to the number of characters extracted.
ch | - | reference to the character to write the result to |
s | - | pointer to the character string to store the characters to |
count | - | size of character string pointed to by s |
delim | - | delimiting character to stop the extraction at. It is not extracted and not stored. |
strbuf | - | stream buffer to read the content to |
Traits::eof()
*this
failure
if an error occurred (the error state flag is not goodbit
) and exceptions()
is set to throw for that state. If an internal operation throws an exception, it is caught and badbit
is set. If exceptions()
is set for badbit
, the exception is rethrown.
#include <sstream> #include <iostream> int main() { std::istringstream s1("Hello, world."); char c1 = s1.get(); // reads 'H' std::cout << "after reading " << c1 << ", gcount() == " << s1.gcount() << '\n'; char c2; s1.get(c2); // reads 'e' char str[5]; s1.get(str, 5); // reads "llo," std::cout << "after reading " << str << ", gcount() == " << s1.gcount() << '\n'; std::cout << c1 << c2 << str; s1.get(*std::cout.rdbuf()); // reads the rest, not including '\n' std::cout << "\nAfter the last get(), gcount() == " << s1.gcount() << '\n'; }
Output:
after reading H, gcount() == 1 after reading llo,, gcount() == 4 Hello, world. After the last get(), gcount() == 7
extracts blocks of characters (public member function) |
|
extracts formatted data (public member function) |
|
extracts characters and character arrays (function template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_istream/get