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


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 пространство имен:

См. также

Ссылки

num_get Class