std::basic_istream<CharT,Traits>::operator>> (3) - Linux Manuals

std::basic_istream<CharT,Traits>::operator>>: std::basic_istream<CharT,Traits>::operator>>

NAME

std::basic_istream<CharT,Traits>::operator>> - std::basic_istream<CharT,Traits>::operator>>

Synopsis


basic_istream& operator>>( short& value ); (1)
basic_istream& operator>>( unsigned short& value );
basic_istream& operator>>( int& value ); (2)
basic_istream& operator>>( unsigned int& value );
basic_istream& operator>>( long& value ); (3)
basic_istream& operator>>( unsigned long& value );
basic_istream& operator>>( long long& value ); (4) (since C++11)
basic_istream& operator>>( unsigned long long& value );
basic_istream& operator>>( float& value );
basic_istream& operator>>( double& value ); (5)
basic_istream& operator>>( long double& value );
basic_istream& operator>>( bool& value ); (6)
basic_istream& operator>>( void*& value ); (7)
basic_istream& operator>>( std::ios_base& (*func)(std::ios_base&) ); (8)
basic_istream& operator>>( std::basic_ios<CharT,Traits>& (*func)(std::basic_ios<CharT,Traits>&) ); (9)
basic_istream& operator>>( basic_istream& (*func)(basic_istream&) ); (10)
basic_istream& operator>>( std::basic_streambuf<CharT,Traits>* sb ); (11)


1-4) Behaves as a FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, extracts an integer value by calling std::num_get::get()
5) Behaves as a FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, extracts a floating point value by calling std::num_get::get()
6) Behaves as a FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, extracts bool value by calling std::num_get::get()
7) Behaves as a FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, extracts a generic pointer value by calling std::num_get::get()
8-10) Calls func(*this), where func is an I/O manipulator.
11) Behaves as an UnformattedInputFunction. After constructing and checking the sentry object, extracts all data from the input stream and stores it to sb. The extraction stops if one of the following conditions are met:


      * end-of-file occurs on the input sequence;
      * inserting in the output sequence fails (in which case the character to be inserted is not extracted);
      * an exception occurs (in which case the exception is caught, and only rethrown if failbit is enabled in exceptions()).


In either case, stores the number of characters extracted in the member variable accessed by subsequent calls to gcount(). If sb is a null pointer or if no characters were inserted into sb, calls setstate(failbit) (which may throw std::ios_base::failure if enabled).


If extraction fails (e.g. if a letter was entered where a digit is expected), value is left unmodified and failbit is set. (until C++11)
If extraction fails, zero is written to value and failbit is set. If extraction results in the value too large or too small to fit in value, std::numeric_limits<T>::max() or std::numeric_limits<T>::min() is written and failbit flag is set. (since C++11)

Parameters


value - reference to an integer or floating-point value to store the extracted value to
func - pointer to I/O manipulator function
sb - pointer to the streambuffer to write all the data to

Return value


1-9,11) *this
10) func(*this)

Example


// Run this code


  #include <iostream>
  #include <iomanip>
  #include <sstream>


  int main()
  {
      std::string input = "41 3.14 false hello world";
      std::istringstream stream(input);
      int n;
      double f;
      bool b;


      stream >> n >> f >> std::boolalpha >> b;
      std::cout << "n = " << n << '\n'
                << "f = " << f << '\n'
                << "b = " << std::boolalpha << b << '\n';


      // extract the rest using the streambuf overload
      stream >> std::cout.rdbuf();
      std::cout << '\n';
  }

Output:


  n = 41
  f = 3.14
  b = false
  hello world

See also


                               extracts characters and character arrays
operator>>(std::basic_istream) (function template)
                               performs stream input and output on strings
operator<< (function template)
operator>>
                               performs stream input and output of bitsets
operator<< (function template)
operator>>
                               serializes and deserializes a complex number
operator<< (function template)
operator>>
                               performs stream input and output on pseudo-random number engine
operator<< (function template)
operator>>
                               performs stream input and output on pseudo-random number distribution
operator<< (function template)
operator>>
                               extracts blocks of characters
read (public member function)
                               extracts already available blocks of characters
readsome (public member function)
                               extracts characters
get (public member function)
                               extracts characters until the given character is found
getline (public member function)


from_chars converts a character sequence to an integer or floating-point value
                               (function)
(C++17)