operator>>(std::basic_istream)
template< class CharT, class Traits > basic_istream<CharT,Traits>& operator>>( basic_istream<CharT,Traits>& st, CharT& ch ); |
(1) | |
template< class CharT, class Traits> basic_istream<CharT,Traits>& operator>>( basic_istream<CharT,Traits>& st, CharT* s ); |
(2) | |
template< class CharT, class Traits, class T > basic_istream<CharT,Traits>& operator>>( basic_istream<CharT,Traits>&& st, T& value ); |
(3) | (since C++11) |
Performs character input operations.
1) Extracts a character and stores it to ch.
2) Extracts successive characters and stores them at successive locations of a character array whose first element is pointed to by s. The extraction stops if one of the following conditions are met:
- a whitespace character (as determined by the ctype<CharT> facet) is found. The whitespace character is not extracted.
- this->width() - 1 characters are extracted
In either case, an additional null character value CharT() is stored at the end of the output.
3) Calls the appropriate extraction operator, given an rvalue reference to an input stream object (equivalent to st >> value).
Contents |
[edit] Notes
The (1-2) versions of the operator behave as formatted input functions. That is, they construct a sentry object at the beginning that flushes the tie()'d buffers if needed, checks for errors, and extracts and discards all leading whitespace characters unless the ios_base::skipws flag was cleared. The input is attempted only if the sentry object returns true.
[edit] Parameters
st | - | input stream to extract the data from |
ch | - | reference to a character to store the extracted character to |
s | - | pointer to a character string to store the extracted characters to |
[edit] Return value
st
[edit] Example
#include <iostream> #include <iomanip> #include <sstream> int main() { std::string input = "n greetings"; std::istringstream stream(input); char c; const int MAX = 6; char cstr[MAX]; stream >> c >> std::setw(MAX) >> cstr; std::cout << "c = " << c << '\n' << "cstr = " << cstr << '\n'; double f; std::istringstream("1.23") >> f; // rvalue stream extraction std::cout << "f = " << f << '\n'; }
Output:
c = n cstr = greet f = 1.23
[edit] See also
extracts formatted data (public member function) |