template< class CharT, class Traits > basic_istream<CharT,Traits>& operator>>( basic_istream<CharT,Traits>& st, CharT& ch ); template< class Traits > basic_istream<char,Traits>& operator>>( basic_istream<char,Traits>& st, signed char& ch ); template< class Traits > basic_istream<char,Traits>& operator>>( basic_istream<char,Traits>& st, unsigned char& ch ); | (1) | |
(2) | ||
template< class CharT, class Traits> basic_istream<CharT,Traits>& operator>>( basic_istream<CharT,Traits>& st, CharT* s ); template< class Traits > basic_istream<char,Traits>& operator>>( basic_istream<char,Traits>& st, signed char* s ); template< class Traits > basic_istream<char,Traits>& operator>>( basic_istream<char,Traits>& st, unsigned char* s ); | (until C++20) | |
template< class CharT, class Traits, std::size_t N > basic_istream<CharT,Traits>& operator>>( basic_istream<CharT,Traits>& st, CharT (&s)[N] ); template< class Traits, std::size_t N > basic_istream<char,Traits>& operator>>( basic_istream<char,Traits>& st, signed char (&s)[N] ); template< class Traits, std::size_t N > basic_istream<char,Traits>& operator>>( basic_istream<char,Traits>& st, unsigned char (&s)[N] ); | (since C++20) | |
(3) | ||
template< class CharT, class Traits, class T > basic_istream<CharT,Traits>& operator>>( basic_istream<CharT,Traits>&& st, T& value ); | (since C++11) (until C++17) | |
template< class CharT, class Traits, class T > basic_istream<CharT,Traits>& operator>>( basic_istream<CharT,Traits>&& st, T&& value ); | (since C++17) |
1-2) Performs character input operations.
1) Behaves as an FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, extracts a character and stores it to ch
. If no character is available, sets failbit
(in addition to eofbit
that is set as required of a FormattedInputFunction).
2) Behaves as an FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, extracts successive characters and stores them at successive locations of a character array whose first element is pointed to by (until C++20) s
. The extraction stops if one of the following conditions are met:
ctype<CharT>
facet) is found. The whitespace character is not extracted.
| (until C++20) |
| (since C++20) |
eofbit
) In either case, an additional null character value CharT()
is stored at the end of the output. If no characters were extracted, sets failbit
(the null character is still written, to the first position in the output). Finally, calls st.width(0)
to cancel the effects of std::setw
, if any. 3).
Calls the appropriate extraction operator, given an rvalue reference to an input stream object (equivalent to st >> value ). |
(since C++11) (until C++17) |
Calls the appropriate extraction operator, given an rvalue reference to an input stream object (equivalent to st >> std::forward<T>(value) ). This function does not participate in overload resolution unless the expression st >> std::forward<T>(value) is well-formed. | (since C++17) |
Extracting a single character that is the last character of the stream does not set eofbit
: this is different from other formatted input functions, such as extracting the last integer with operator>>
, but this behavior matches the behavior of std::scanf
with "%c"
format specifier.
st | - | input stream to extract the data from |
ch | - | reference to a character to store the extracted character to |
s | - | pointer to (until C++20) a character array to store the extracted characters to |
st
.
#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
extracts formatted data (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt2