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

std::wcstoimax, std::wcstoumax

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

Определено в заголовочном файле <cwchar>
std::intmax_t wcstoimax( const wchar_t* nptr, wchar_t** endptr, int base);
(начиная с C++11)
std::uintmax_t wcstoumax( const wchar_t* nptr, wchar_t** endptr, int base);
(начиная с C++11)
Интерпретирует целое число без знака в широком строку, на которую указывает nptr.
Оригинал:
Interprets an unsigned integer value in a wide string pointed to by nptr.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Пропускаются все пробельные символы (которые определяются таковыми с помощью вызова функции isspace()), до тех пор пока не встретится первый символ другого типа, затем берётся как много больше символов, которые формируют корректную запись целочисленного числа в n-системе счисления (где n = base) беззнаковое, и конвертирует её в значение нужного типа. Корректная запись безнакового целого числа состоит из следующих частей:

  • (необязательно) знак плюса или минуса
  • (необязательно) префикс (0), который обозначает использование 8-ричной системы счисления (применимо только тогда, когда base равен 8 или 0)
  • (необязательно) префикс (0x или 0X), который обозначает использование 16-ричной системы счисления (применимо только тогда, когда base равен 16 или 0)
  • последовательность цифр.

Допустимый набор цифр для 2-ричной системы счисления - 01, для 3-ичной - 012 и так далее, начиная с 11-ричной системы счисления в диапазон допустимых цифр входят латинские буквы от Aa до Zz для 36-ричной системы счисления. В этом случае регистр букв не имеет значения.

Дополнительные форматы для чисел могут применяться, используя региональные параметры Си.

Если значение base равно 0, то система счисления автоматически определяется: если присутствует префикс 0, то она 8-ричная, если 0x или 0X, то 16-ричная, иначе 10-ричная.

Если знак минуса был частью входной последовательности, то числовое значение вычисляется, путём применения к числу из последовательности цифр операции унарного минуса, что является применимым и для безнаковых целых чисел.

Функции устанавливает указатель на которую указывает endptr указывают на широкий символ после последнего символа интерпретируются. Если endptr является NULL, он игнорируется.
Оригинал:
The functions sets the pointer pointed to by endptr to point to the wide character past the last character interpreted. If endptr is NULL, it is ignored.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

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

nptr -
Указатель нулем строку широких следует толковать
Оригинал:
pointer to the null-terminated wide string to be interpreted
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
endptr -
Указатель на указатель на широкий характер .
Оригинал:
pointer to a pointer to a wide character.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
base -
' Из базы интерпретировать целое значение
Оригинал:
base of the interpreted integer value
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Возвращаемое значение

Целое значение, соответствующее содержание str на успех. Если преобразованное значение выпадает из диапазона соответствующий тип возвращения, диапазон ошибки и INTMAX_MAX, INTMAX_MIN, UINTMAX_MAX, или 0 возвращается по мере необходимости. Если преобразование не может быть выполнено, 0 возвращается.
Оригинал:
Integer value corresponding to the contents of str on success. If the converted value falls out of range of corresponding return type, range error occurs and INTMAX_MAX, INTMAX_MIN, UINTMAX_MAX, or 0 is returned, as appropriate. If no conversion can be performed, 0 is returned.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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

#include <iostream>
#include <string>
#include <cinttypes>
 
int main()
{
    std::wstring str = L"helloworld";
    std::intmax_t val = std::wcstoimax(str.c_str(), nullptr, 36);
    std::wcout << str << " in base 36 is " << val << " in base 10\n";
 
    wchar_t* nptr;
    val = std::wcstoimax(str.c_str(), &nptr, 30);
    if(nptr != &str[0] + str.size())
        std::wcout << str << " in base 30 is invalid."
                  << " The first invalid digit is " << *nptr << '\n';
}

Вывод:

helloworld in base 36 is 1767707668033969 in base 10
helloworld in base 30 is invalid. The first invalid digit is w

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

(C++11)
(C++11)
преобразует байт строки std::intmax_t или std::uintmax_t
Оригинал:
converts a byte string to std::intmax_t or std::uintmax_t
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [править]
преобразует широкий строку в целое значение
Оригинал:
converts a wide string to an integer value
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [править]
преобразует широкий строка целое число без знака
Оригинал:
converts a wide string to an unsigned integer value
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [править]
C documentation for wcstoimax, wcstoumax