std::basic_istream::get
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 first construct a std::basic_istream::sentry object with noskipws set to true to check the stream for errors and to flush the tie()'d output streams if necessary. If the sentry object returns true, the function attempts to obtain the input and updates gcount() to reflect the number of characters they extract, otherwise the function returns without attempting any input and sets gcount() to zero.
If an exception is thrown during input, setstate(badbit) is called and the function returns.
All versions set the value of gcount() to the number of characters extracted.
1) reads one character and returns it if available. Otherwise, returns Traits::eof() and sets failbit and eofbit.
2) reads one character and stores it to 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>>.
3) same as 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.
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:
- n-1 characters have been stored
- end of file condition occurs in the input sequence (setstate(eofbit) is called)
- the next available input character c equals delim, as determined by Traits::eq(c, delim). This character is not extracted (unlike basic_istream::getline())
If no characters were extracted, calls setstate(failbit). 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_streambuf object until '\n' is found.
6) reads characters and inserts them to the output sequence controlled by the given basic_streambuf object. Characters are extracted and inserted into strbuf until any of the following occurs:
- end of file condition occurs in the input sequence
- insert into the output sequence fails (in which case the character that could not be inserted, is not extracted)
- the next available input character c equals delim, as determined by Traits::eq(c, delim). This character is not extracted.
- an exception occurs (in which case the exception is caught and not rethrown)
If no characters were extracted, calls setstate(failbit).
Contents |
[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 value
1) the extracted character or Traits::eof()
2-6) *this
[edit] Example
#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
[edit] See also
extracts blocks of characters (public member function) | |
extracts formatted data (public member function) | |
extracts characters and character arrays (function template) |