std::num_get
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody>| Определено в заголовочном файле <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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Диаграмма наследования
Тип требованиям
-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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Определены в заголовочном файле
<locale> | |
std::num_get<char>
|
создает узкую разбора строки цифр
Оригинал: creates narrow string parsing of numbers Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
std::num_get<wchar_t>
|
создает широкие разбора строки цифр
Оригинал: creates wide string parsing of numbers Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
std::num_get<char, InputIt>
|
создает узкую разбора строки цифр с использованием пользовательского итератора ввода
Оригинал: creates narrow string parsing of numbers using custom input iterator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
std::num_get<wchar_t, InputIt>
|
создает широкие разбора строки цифр с использованием пользовательского итератора ввода
Оригинал: creates wide string parsing of numbers using custom input iterator Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Типы-члены
| Тип члена | Определение |
char_type
|
CharT
|
iter_type
|
InputIt
|
Функции-члены
строит новую грань num_get Оригинал: constructs a new num_get facet Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
разрушает num_get грань Оригинал: destructs a num_get facet Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (protected функция-элемент) | |
Вызывает do_get Оригинал: invokes do_get Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) |
Член объектов
static std::locale::id id |
' Идентификатор локали Оригинал: id of the locale Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (публичный объект-член) |
Охраняемые функций-членов
[virtual] |
анализирует ряд из входного потока Оригинал: parses a number from an input stream Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (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
См. также
| определяет правила пунктуации чисел (шаблон класса) | |
| форматирует числовые значения для вывода в виде последовательности символов (шаблон класса) | |
извлекает форматированные данные из потока ввода std::basic_istream (public функция-элемент std::basic_istream)
|