Преобразование INT8 … INT64, UINT8 … UINT64, float, double, в WCHAR *

Я использую C / C ++, есть ли какие-либо функции Windows, или какие-либо очень быстрые способы конвертировать из любого из типов в заголовке в const WCHAR *?

Так что у меня есть большой случай, когда я проверяю свои данные, какого они типа, после того, как они попадают в какую-то ветку, где мне нужно преобразовать эти данные в WCHAR *.

Так, например, если у меня есть
21, я хочу, чтобы это было L «21».
32.322 => L «32.322» и т. Д.

Я мог бы сделать это вручную, но я бы предпочел, если бы был какой-то более быстрый путь! Эти преобразования, кажется, происходят на более низком уровне.

Спасибо!

-3

Решение

Ты можешь использовать std::to_wstring если вы используете C ++ 11 или C ++ 14. В противном случае используйте swprintf следующим образом:

Создайте широкий строковый буфер с подходящим размером массива:

wchar_t wstr[32];

Чтобы преобразовать в целое число, используйте «swprintf» с форматом «% d»:

swprintf(wstr, L"%d", 21);

Теперь «WSTR» содержит ваш «21»

А для преобразования в число с плавающей запятой используйте swprintf в формате «%. * F». Мы будем использовать максимум 3 цифры после десятичной точки (по умолчанию это 6). Так что для хранения потребуется меньше wchar_t:

swprintf(wstr, L"%.*f", 3, 32.322f);

Теперь ‘WSTR’ содержит ваш «32,322»

Посмотрите на следующую страницу MSDN для получения дополнительной информации о ‘swprintf’

sprintf, swprintf

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]