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