num_get::do_get
Виртуальная функция, которая вызывается в выдержкам численное или логическое значение из последовательности знаков.
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned short& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned int& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
Параметры
_First
Начало диапазона символов из которых следует считать номер._Last
Конец диапазона символов из которых следует считать номер._Iosbase
ios_base флаги, используемые преобразованием._State
Состояние, к которому failbit (см. ios_base::iostate) добавляется в случае сбоя._Val
Прочитанное значение.
Возвращаемое значение
Итератор после значение будет читаться.
Заметки
Первым функцию-член, защищенный виртуальный
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;
соответствует идущим подряд элементам, начинающимися с _First в последовательности [_First,_Last) до тех пор, пока она не будет узнавать полное, nonempty целое число входных поле.В случае успеха она преобразует это поле эквивалентный значению как тип long, и сохраняет результат в _Val.Итератор, обозначающая он возвращает первый элемент после числового поля ввода.В противном случае функция не сохраняет nothing в _Val и задает ios_base::failbit в state.Она возвращает итератор, обозначающая первый элемент с любым префиксом допустимого поля ввода целого числа.В любом случае, если возвращаемое значение равно last, то функция задает ios_base::eofbit в state.
Поле ввода целое число преобразуется те же правила, используемые функциями просмотра для сопоставления и преобразования ряд элементов char из файла.(Предполагается, что сопоставляет каждый такой элемент char к элементу эквивалентности типов Elem простым, один к одному, сопоставление). Эквивалентную спецификация преобразования просмотра определяется следующим образом:
Если iosbase.ios_base::flags() & ios_base::basefield == ios_base::октябрь, спецификация преобразования lo.
Если iosbase.flags() & ios_base::basefield == ios_base::hex, спецификация преобразования lx.
Если iosbase.flags() & ios_base::basefield == 0, спецификация преобразования li.
В противном случае - спецификация преобразования ld.
Формат поля ввода целого числа, определен аспект языкового стандарта incremental fac возвращенным вызовом use_facet<numpunct<Elem>(iosbase.ios_base::getloc()).В частности:
fac.numpunct::grouping() определяет способ группирования слева от десятичной запятой любого числа
fac.numpunct::thousands_sep() определяет последовательность, которая разделяет группы в составе цифр слева от любой десятичной запятой.
Если экземпляры fac.thousands_sep() не происходят в числовом поле ввода на то, что ограничение не наведено группирования.В противном случае применяются все ограничения, налагаемые fac.grouping() группирования и разделители удаляются до преобразования просмотра.
Четвертым функцию-член защищенный виртуальный:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
работает так же, как и во-первых, за исключением того, что он заменяет спецификация преобразования ld с lu.При успешном его преобразования числовое поле ввода значение типа unsigned long и магазины, который принимает в _Val.
Пятым функцию-член защищенный виртуальный:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
работает так же, как и во-первых, за исключением того, что он заменяет спецификация преобразования ld с lld.При успешном его преобразования числовое поле ввода значение типа long long и магазины, который принимает в _Val.
Шестым функцию-член защищенный виртуальный:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
работает так же, как и во-первых, за исключением того, что он заменяет спецификация преобразования ld с llu.При успешном его преобразования числовое поле ввода значение типа unsigned long long и магазины, который принимает в _Val.
Седьмым функцию-член защищенный виртуальный:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
работает так же, как и во-первых, за исключением того, что он стремится соответствовать полному, nonempty поле ввода с плавающей запятой.fac.numpunct::decimal_point() определяет последовательность, которая разделяет числа целого числа из цифр части.Эквивалентный описатель преобразования просмотра lf.
Восьмым функцию-член защищенный виртуальный:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
работает так же, как и во-первых, за исключением того, что он стремится соответствовать полному, nonempty поле ввода с плавающей запятой.fac.numpunct::decimal_point() определяет последовательность, которая разделяет числа целого числа из цифр части.Эквивалентный описатель преобразования просмотра lf.
Девятым функцию-член защищенный виртуальный:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
работает так же, как и восьмой, за исключением того, что эквивалентный описатель преобразования просмотра Lf.
Девятым функцию-член защищенный виртуальный:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
работает так же, как во-первых, за исключением того, что эквивалентный описатель преобразования просмотра p.
Последний (одиннадцатый) виртуальный защищал функции-члена:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
работает так же, как и во-первых, за исключением того, что он стремится соответствовать полному, nonempty логический поле ввода.В случае успеха она преобразуют логическое поле ввода значение типа bool и магазины, который принимает в _Val.
Логическое поле ввода использует одну из 2 с помощью форм.Если iosbase.flags() & ios_base::boolalpha false, то такой же, как и поле ввода целым числом, за исключением того, что преобразованное значение должно быть либо 0 (false) или 1 (true).В противном случае последовательность должна соответствовать или fac.numpunct::falsename() (false) или fac.numpunct::truename() (true).
Пример
См. пример для получите, где виртуальный функция-член вызывается do_get.
Требования
заголовок: <locale>
std пространство имен: