Пространства имён
Варианты
Действия

std::num_get

Материал из cppreference.com
< cpp‎ | locale

 
 
Локализация
Локализации и фасеты
locale
Классификация символов
Преобразования
Базовые классы фасетов
Категории фасетов
Зависящие от локализации категории фасетов
Не зависящие от локализации фасеты преобразования unicode
codecvt_utf8(C++11)
codecvt_utf16(C++11)
Локализации С
 
std::num_get
Член функций
Оригинал:
Member functions
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
num_get::num_get
num_get::~num_get
num_get::get
num_get::do_get
 
Определено в заголовочном файле <locale>
template<

    class CharT,
    class InputIt = std::istreambuf_iterator<CharT>

> class num_get;
Класс std::num_get инкапсулирует правила для разбора строкового представления значения типа bool, unsigned short, unsigned int, long, unsigned long, long long, unsigned long long, float, double, long double, и void*. Стандартное форматирование входных операторов (таких как cin >> n;) используют std::num_get аспект языка ввода / вывода потока для разбора текста представления чисел.
Оригинал:
Class std::num_get encapsulates the rules for parsing string representations of values of type bool, unsigned short, unsigned int, long, unsigned long, long long, unsigned long long, float, double, long double, and void*. The standard formatting input operators (such as cin >> n;) use the std::num_get facet of the I/O stream's locale to parse the text representations of the numbers.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
cpp/locale/locale/facetstd-num get-inheritance.svg
Описание изображения

Диаграмма наследования

Содержание

[править] Тип требованиям

-
InputIt должен соответствовать требованиям InputIterator.

[править] Специализации

Две специализации и два частичных специализаций предусмотрены стандартные библиотеки и осуществляются все локали объекты, созданные в C + + программ
Оригинал:
Two specializations and two partial specializations are provided by the standard library and are implemented by all locale objects created in a C++ program:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Заголовочный файл <locale>
std::num_get<char>
создает узкую разбора строки цифр
Оригинал:
creates narrow string parsing of numbers
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
std::num_get<wchar_t>
создает широкие разбора строки цифр
Оригинал:
creates wide string parsing of numbers
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
std::num_get<char, InputIt>
создает узкую разбора строки цифр с использованием пользовательского итератора ввода
Оригинал:
creates narrow string parsing of numbers using custom input iterator
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
std::num_get<wchar_t, InputIt>
создает широкие разбора строки цифр с использованием пользовательского итератора ввода
Оригинал:
creates wide string parsing of numbers using custom input iterator
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Типы-члены

Тип члена Определение
char_type CharT
iter_type InputIt

[править] Функции-члены

строит новую грань num_get
Оригинал:
constructs a new num_get facet
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член)
разрушает num_get грань
Оригинал:
destructs a num_get facet
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(protected функция-член)
Вызывает do_get
Оригинал:
invokes do_get
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член)

[править] Член объектов

static std::locale::id id
' Идентификатор локали
Оригинал:
id of the locale
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public объект-член)

[править] Охраняемые функций-членов

[virtual]
анализирует ряд из входного потока
Оригинал:
parses a number from an input stream
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected функция-член)

[править] Пример

#include <iostream>
#include <locale>
#include <string>
#include <sstream>
#include <iterator>
int main()
{
    std::string de_double = "1.234.567,89";
    std::string us_double = "1,234,567.89";
 
    // parse using streams
    std::istringstream de_in(de_double);
    de_in.imbue(std::locale("de_DE"));
    double f1;
    de_in >> f1;
 
    std::istringstream us_in(de_double);
    us_in.imbue(std::locale("en_US.UTF-8"));
    double f2;
    us_in >> f2;
 
    std::cout << "Parsing " << de_double << " as double gives " << std::fixed
              << f1 << " in de_DE locale and " << f2 << " in en_US\n";
 
    // use the facet directly
    std::istringstream s3(us_double);
    s3.imbue(std::locale("en_US.UTF-8"));
    auto& f = std::use_facet<std::num_get<char>>(s3.getloc());
    std::istreambuf_iterator<char> beg(s3), end;
    double f3;
    std::ios::iostate err;
    f.get(beg, end, s3, err, f3);
    std::cout << "parsing " << us_double
              << " as double using raw en_US facet gives " << f3 << '\n';
}

Вывод:

Parsing 1.234.567,89 as double gives 1234567.890000 in de_DE locale and 1.234000 in en_US
parsing 1,234,567.89 as double using raw en_US facet gives 1234567.890000

[править] См. также

определяет числовой правил пунктуации
Оригинал:
defines numeric punctuation rules
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон класса) [edit]
Форматы числовых значений для вывода как последовательности символов
Оригинал:
formats numeric values for output as character sequence
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон класса) [edit]
Экстракты отформатированные данные
Оригинал:
extracts formatted data
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член std::basic_istream) [edit]