textpub.neocities.org . [ записки: обучаюсь C++ ]

Из моих записок про самообучение C++. Оригинальный пост в ЖЖ написан 14.12.2018 г.

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

В рамках изучения написания программ под Windows на C++ с применением Win32 API.

Изучил каркас простейшей программы с оконным интерфейсом в Windows. Вношу в текст этой программы изменения. Понадобилось преобразовать целое число в строку, чтобы вывести в окно.

Кстати, большое количество строковых типов и кодировок в Windows превращают работу с ними в довольно непростую для начинающего задачу.

Можно, конечно, изобрести велосипед, попробовав написать свою функцию преобразования. Но мы ищем легкие пути.

Самый легкий способ — использовать функции преобразования целого числа в строку из стандартной библиотеки языка Си (реализация которой для Windows — например, от фирмы Microsoft — библиотека CRT):

#include <windows.h>

int n = 0; // целое число (глобальная переменная)

...

// в обработке сообщения WM_PAINT

WCHAR str[5]; // строка
_itow_s(n, str, 10); // преобразование целого числа в строку
TextOut(hdc, 0, 0, str, wcslen(str)); // вывод строки в окно
...

Описание функций типа _itow_s на сайте компании Microsoft можно прочитать здесь.

Но в интернетах пишут, что чоткие пацаны теперь должны идти к успеху стандарту языка C++. Поэтому лучше использовать функции из стандартной библиотеки языка C++:

#include <windows.h>
#include <string> // подключаем для работы со строковым классом

int n = 0; // целое число (глобальная переменная)

...

// в обработке сообщения WM_PAINT

std::wstring str = std::to_wstring(n); // число в строку
TextOut(hdc, 0, 0, str.c_str(), str.length()); // строку в окно
...

textpub.neocities.org . [ записки: обучаюсь C++ ]