30 Input/output library [input.output]

30.7 Formatting and manipulators [iostream.format]

30.7.4 Input streams [input.streams]

30.7.4.2 Formatted input functions [istream.formatted]

30.7.4.2.3 basic_­istream​::​operator>> [istream.extractors]

basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& (*pf)(basic_istream<charT, traits>&));

Effects: Никто. Этот экстрактор не ведет себя как функция форматированного ввода (как описано в [istream.formatted.reqmts]).

Returns: pf(*this).308

basic_istream<charT, traits>& operator>>(basic_ios<charT, traits>& (*pf)(basic_ios<charT, traits>&));

Effects: Звонки pf(*this). Этот экстрактор не ведет себя как функция форматированного ввода (как описано в [istream.formatted.reqmts]).

Returns: *this.

basic_istream<charT, traits>& operator>>(ios_base& (*pf)(ios_base&));

Effects: Звонки pf(*this).309 Этот экстрактор не ведет себя как функция форматированного ввода (как описано в [istream.formatted.reqmts]).

Returns: *this.

template<class charT, class traits> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& in, charT* s); template<class traits> basic_istream<char, traits>& operator>>(basic_istream<char, traits>& in, unsigned char* s); template<class traits> basic_istream<char, traits>& operator>>(basic_istream<char, traits>& in, signed char* s);

Effects: Ведет себя как отформатированный входной член (как описано в [istream.formatted.reqmts]) of in. После создания sentry объекта operator>> извлекает символы и сохраняет их в последовательных местах массива, первый элемент которого обозначен знаком s. Если width() больше нуля, то n есть width(). В противном случае n - это количество элементов самого большого массива, в char_­type котором может храниться завершение charT(). n - максимальное количество хранимых символов.

Символы извлекаются и сохраняются до тех пор, пока не произойдет одно из следующих событий:

  • n-1 символы сохраняются;

  • конец файла происходит во входной последовательности;

  • пусть ct будет use_­facet<ctype<charT>>(in.getloc()), ct.is(ct.space, c) есть true.

operator>> затем сохраняет нулевой байт (charT()) в следующей позиции, которая может быть первой позицией, если символы не были извлечены. operator>> потом звонит width(0).

Если функция не извлекла никаких символов, она вызывает setstate(failbit), что может вызвать throw ios_­base​::​​failure ([iostate.flags]).

Returns: in.

template<class charT, class traits> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& in, charT& c); template<class traits> basic_istream<char, traits>& operator>>(basic_istream<char, traits>& in, unsigned char& c); template<class traits> basic_istream<char, traits>& operator>>(basic_istream<char, traits>& in, signed char& c);

Effects: Ведет себя как отформатированный входной член (как описано в [istream.formatted.reqmts]) of in. После создания sentry объекта из него извлекается символ in, если он доступен, и сохраняется в c. В противном случае функция вызывает in.setstate(failbit).

Returns: in.

basic_istream<charT, traits>& operator>>(basic_streambuf<charT, traits>* sb);

Effects: Ведет себя как unformatted input function. Если sb равно нулю, вызывает setstate(failbit), который может throw ios_­base​::​failure ([iostate.flags]). После того, как часовой объект построен, извлекает символы из *this и вставляет их в выходную последовательность, управляемую sb. Символы извлекаются и вставляются до тех пор, пока не произойдет одно из следующих событий:

  • конец файла встречается во входной последовательности;

  • вставка в выходную последовательность не выполняется (в этом случае вставляемый символ не извлекается);

  • возникает исключение (в этом случае исключение перехватывается).

Если функция не вставляет символы, она вызывает setstate(failbit), что может вызвать throw ios_­base​::​​failure ([iostate.flags]). Если он не вставил никаких символов, потому что он поймал исключение, созданное при извлечении символов из *this и включеноfailbit в exceptions() ([iostate.flags]), то пойманное исключение генерируется повторно.

Returns: *this.

См., Например, сигнатуру функции ws(basic_­istream&).

См., Например, сигнатуру функции dec(ios_­base&).