int_type get();
(1)basic_istream& get( char_type& ch );
(2) (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:
1)Reads one character and returns it if available. Otherwise, returns
Traits::eof()and sets
failbitand
eofbit.
2)Reads one character and stores it to
chif available. Otherwise, leaves
chunmodified and sets
failbitand
eofbit. Note that this function is not overloaded on the types
signed charand
unsigned char, unlike the formatted character input operator>>.
3)Same as
get(s, count, widen('\n')), that is, reads at most
std::max(0, count - 1)characters and stores them into character string pointed to by
suntil
'\n'is found.
4)Reads characters and stores them into the successive locations of the character array whose first element is pointed to by
s. Characters are extracted and stored until any of the following occurs:
getline()
).In any case, if count > 0, a null character (CharT() is stored in the next successive location of the array.
5)Same as
get(strbuf, widen('\n')), that is, reads available characters and inserts them to the given
basic_streambufobject until
'\n'is found.
6)Reads characters and inserts them to the output sequence controlled by the given
basic_streambufobject. Characters are extracted and inserted into
strbufuntil any of the following occurs:
If no characters were extracted, calls setstate(failbit).
All versions set the value of gcount() to the number of characters extracted.
[edit] Parameters 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 [edit] Return value1) The extracted character or Traits::eof().
2-6) *this
[edit] Exceptionsfailureif 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 <iostream> #include <sstream> 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[edit] 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 370 C++98 the effect of overload (5) was get(s, count, widen('\n')),RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4