Поделиться через


basic_istream::operator>>

Вызывает функцию на входном потоке или считывает форматированные данные из входного потока.

basic_istream& operator>>(
   basic_istream& (*_Pfn)(basic_istream&)
);
basic_istream& operator>>(
   ios_base& (*_Pfn)(ios_base&)
);
basic_istream& operator>>(
   basic_ios<Elem, Tr>& (*_Pfn)(basic_ios<Elem, Tr>&))
;
basic_istream& operator>>(
   basic_streambuf<Elem, Tr> *_Strbuf
);
basic_istream& operator>>(
   bool& _Val
);
basic_istream& operator>>(
   short& _Val
);
basic_istream& operator>>(
   unsigned short& _Val
);
basic_istream& operator>>(
   int& _Val
);
basic_istream& operator>>(
   unsigned int& _Val
);
basic_istream& operator>>(
   long& _Val
);
basic_istream& operator>>(
   unsigned long& _Val
);
basic_istream& operator>>(
   long long& _Val
);
basic_istream& operator>>(
   unsigned long long& _Val
);
basic_istream& operator>>(
   void *& _Val
);
basic_istream& operator>>(
   float& _Val
);
basic_istream& operator>>(
   double& _Val
);
basic_istream& operator>>(
   long double& _Val
);

Параметры

  • _Pfn
    Указатель функции.

  • _Strbuf
    Объект типа stream_buf.

  • _Val
    Значение для чтения из потока.

Возвращаемое значение

Поток (*this).

Заметки

Заголовок <istream> также определяет несколько глобальных операторов извлечения. Для получения дополнительной информации см. operator>> (<istream>).

Первый функцию-член гарантирует, что выражение в форме istr >>ws вызывает WS(istr), а затем возвращает *this. Второй и третий функции гарантируют, что другие манипуляторов, например hex, поведение аналогично. Остальные функции, форматированные входных функции.

Функция:

basic_istream& operator>>(
    basic_streambuf<Elem, Tr> *_Strbuf);

извлекает элементы, если нет _Strbuf пустых указателей, и вставлять их в _Strbuf. Извлечение останавливается в конце файла. Он также останавливается без извлечения элементов в сообщении, если вставка завершилась ошибкой или создает исключение, оно (обработано, но не, повторно создаются). Если функция не извлекает элементов, она вызывает функцию setstate(failbit). В любом случае функция возвращает *this.

Функция:

basic_istream& operator>>(bool& _Val);

извлекает поле и преобразует его в логическое значение путем вызова use_facet <num_get<Elem, InIt>(getloc). получение( rdbuf(InIt), Init(0), *thisgetloc, _Val). В данном случае InIt определен как istreambuf_iterator<,Elem, Tr>. Функция возвращает *this.

Функции:

basic_istream& operator>>(short& _Val);
basic_istream& operator>>(unsigned short& _Val);
basic_istream& operator>>(int& _Val);
basic_istream& operator>>(unsigned int& _Val);
basic_istream& operator>>(long& _Val);
basic_istream& operator>>(unsigned long& _Val);

basic_istream& operator>>(long long& _Val);
basic_istream& operator>>(unsigned long long& _Val);

basic_istream& operator>>(void *& _Val);

каждая извлечь поле и преобразует его в числовому значению путем вызова use_facet<num_get<Elem, InIt>(getloc). получение(InIt( rdbuf), Init(0), *thisgetloc, _Val). В данном случае InIt определяется как istreambuf_iterator<Elem, Tr>и _Val имеют тип long*, unsigned long,* или void* по мере необходимости.

Если преобразованное значение не может быть представлено как тип _Val, вызовы функций setstate(failbit). В любом случае функция возвращает *this.

Функции:

basic_istream& operator>>(float& _Val);
basic_istream& operator>>(double& _Val);
basic_istream& operator>>(long double& _Val);

каждая извлечь поле и преобразует его в числовому значению путем вызова use_facet<num_get<Elem, InIt>(getloc). get(InIt( rdbuf), Init(0), *thisgetloc, _Val). В данном случае InIt определяется как istreambuf_iterator<Elem, Tr>и _Val имеют тип double или long double по мере необходимости.

Если преобразованное значение не может быть представлено как тип _Val, вызовы функций setstate(failbit). В любом случае, она возвращает *this.

Пример

// istream_basic_istream_op_is.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

ios_base& hex2( ios_base& ib ) 
{
   ib.unsetf( ios_base::dec );
   ib.setf( ios_base::hex );
   return ib;
}

basic_istream<char, char_traits<char> >& somefunc(basic_istream<char, char_traits<char> > &i)
{
   if ( i == cin ) 
   {
      cerr << "i is cin" << endl;
   }
   return i;
}

int main( ) 
{
   int i = 0;
   cin >> somefunc;
   cin >> i;
   cout << i << endl;
   cin >> hex2;
   cin >> i;
   cout << i << endl;
}

Ввод

10
10

Пример результатов выполнения

i is cin
10
10
10
16

Требования

Заголовок:<istream>

Пространство имен: std

См. также

Ссылки

Класс basic_istream

operator>> (<istream>)

Программирование iostream

Соглашения iostreams