Преобразование числа в L-строку

Преобразовать целое число в L-строку позволяют следующие функции:

  • _itow() и _itow_s() — преобразуют число типа int в L-строку. Прототипы функций:
#include <cwchar> /* или #include <wchar.h> */
wchar_t *_itow(int val, wchar_t *dest, int radix);
errno_t _itow_s(int val, wchar_t *dest, size_t sizeInWords,
                int radix);

В параметре val указывается число, в параметре dest — указатель на символьный массив, в который будет записан результат, в параметре sizeInWords — максимальный размер символьного массива dest, а в параметре radix — система счисления (2, 8, 10 или 16). Пример использования функции _itow_s():

wchar_t str[100] = {0};
int x = 255;
_itow_s(x, str, 100, 10);
std::wcout << str << std::endl; // 255

Пример вывода двоичного, восьмеричного и шестнадцатеричного значений:

wchar_t str[100] = {0};
// Двоичное значение
std::wcout << _itow(100, str, 2) << std::endl;  // 1100100
// Восьмеричное значение
std::wcout << _itow(10, str, 8) << std::endl;   // 12
// Шестнадцатеричное значение
std::wcout << _itow(255, str, 16) << std::endl; // ff
  • _ltow() и _ltow_s() — преобразуют число типа long в L-строку. Прототипы функций:
#include <cwchar> /* или #include <wchar.h> */
wchar_t *_ltow(long val, wchar_t *dest, int radix);
errno_t _ltow_s(long val, wchar_t *dest, size_t sizeInWords,
                int radix);

Пример:

wchar_t str[100] = {0};
long x = 255;
_ltow_s(x, str, 100, 10);
std::wcout << str << std::endl;               // 255
std::wcout << _ltow(x, str, 16) << std::endl; // ff
  • _ultow() и _ultow_s() — преобразуют число типа unsigned long в L-строку. Прототипы функций:
#include <cwchar> /* или #include <wchar.h> */
wchar_t *_ultow(unsigned long val, wchar_t *dest, int radix);
errno_t _ultow_s(unsigned long val, wchar_t *dest,
                 size_t sizeInWords, int radix);

Пример:

wchar_t str[100] = {0};
unsigned long x = 255;
_ultow_s(x, str, 100, 10);
std::wcout << str << std::endl;                // 255
std::wcout << _ultow(x, str, 16) << std::endl; // ff
  • _i64tow() и _i64tow_s() — преобразуют число типа __int64 в L-строку. Прототипы функций:
#include <cwchar> /* или #include <wchar.h> */
wchar_t *_i64tow(__int64 val, wchar_t *dest, int radix);
errno_t _i64tow_s(__int64 val, wchar_t *dest, size_t sizeInWords,
                  int radix);

Пример:

wchar_t str[100] = {0};
__int64 x = 255;
_i64tow_s(x, str, 100, 10);
std::wcout << str << std::endl;                 // 255
std::wcout << _i64tow(x, str, 16) << std::endl; // ff
  • _ui64tow() и _ui64tow_s() — преобразуют число типа unsigned __int64 в L-строку. Прототипы функций:
#include <cwchar> /* или #include <wchar.h> */
wchar_t *_ui64tow(unsigned __int64 val, wchar_t *dest,
                  int radix);
errno_t _ui64tow_s(unsigned __int64 val, wchar_t *dest,
                   size_t sizeInWords, int radix);

Пример:

wchar_t str[100] = {0};
unsigned __int64 x = 255;
_ui64tow_s(x, str, 100, 10);
std::wcout << str << std::endl;                  // 255
std::wcout << _ui64tow(x, str, 16) << std::endl; // ff

Выполнить форматирование L-строки, а также преобразовать значения элементарных типов в L-строку можно с помощью функции swprintf_s(). Прототип функции:

#include <cwchar> /* или #include <wchar.h> */
int swprintf_s(wchar_t *buf, size_t sizeInWords,
               const wchar_t *format, ...);

В параметре format указывается строка специального формата. Внутри этой строки можно указать обычные символы и спецификаторы формата, начинающиеся с символа %. Спецификаторы формата совпадают со спецификаторами, используемыми в функции printf() (см. разд. 2.9). Вместо спецификаторов формата подставляются значения, указанные в качестве параметров. Количество спецификаторов должно совпадать с количеством переданных параметров. Результат записывается в буфер, адрес которого передается в первом параметре (buf). В параметре sizeInWords указывается размер буфера. Функция возвращает количество символов, записанных в символьный массив. Пример:

_wsetlocale(LC_ALL, L"Russian_Russia.1251");
wchar_t buf[50] = {0};
int x = 100, count = 0;
count = swprintf_s(buf, 50, L"x = %d", x);
std::wcout << buf << std::endl;   // x = 100
std::wcout << count << std::endl; // 7

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов