Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
LostDok
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 49
1

Как положить double в строку типа TCHAR

24.11.2014, 00:34. Просмотров 994. Ответов 8
Метки нет (Все метки)

Здравствуйте.
Есть число double. Нужно положить его в строку типа TCHAR и вывести.

Пример кода:

C++
1
2
3
4
TCHAR str[100];
double res = 12.5;
wsprintf(str, TEXT("%i"), res);
SetWindowText(hWnd, str);
В данном случае в str оказывается 0.
Думаю, проблема в функции wsprintf (%i).
Посоветуйте аналог wsprintf для double или какой-то способ, чтобы положить res в str.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 00:34
Ответы с готовыми решениями:

Перевод double в строку TCHAR
Здраствуйте задача стоит перевесть дабл в тчар! функцией wsprintf(str,...

Как преобразовать строку из CHAR в TCHAR
Добрый день ! Подскажите пожалуйста, как преобразовать строку из CHAR c =...

Как привести строку типа TCHAR в int
Есть строка TCHAR tmp; в ней записано число, нужно вытащить это число и...

Как сравнить TCHAR
Доброго времени суток. Как сравнить TCHAR переменные? THCAR age,age2; В...

Как в DLL положить иконку
Добрый день! Подскажите пожалуйста, как в DLL положить иконку. Код имеет...

8
Max Dark
шКодер самоучка
1968 / 1745 / 860
Регистрация: 09.10.2013
Сообщений: 3,854
Записей в блоге: 6
Завершенные тесты: 2
24.11.2014, 00:48 2
Лучший ответ Сообщение было отмечено LostDok как решение

Решение

Цитата Сообщение от LostDok Посмотреть сообщение
"%i"
I значит integer, "%lf" - double
можно еще
C++
1
2
3
#include <string>
//...
SetWindowTextW(hWnd, std::to_wstring(res).c_str()); // [url]www.cplusplus.com/reference/string/to_wstring/[/url]
1
LostDok
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 49
24.11.2014, 00:54  [ТС] 3
Про %lf читал. Не работает. В str падает f: скрин.

На std::to_wstring(res).c_str почему-то поругалось так:

error C3867: 'std::basic_string<_Elem,_Traits,_Alloc>::c_str': function call missing argument list; use '&std::basic_string<_Elem,_Traits,_Alloc>::c_str' to create a pointer to member

with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>,
_Alloc=std::allocator<wchar_t>
]
0
Max Dark
шКодер самоучка
1968 / 1745 / 860
Регистрация: 09.10.2013
Сообщений: 3,854
Записей в блоге: 6
Завершенные тесты: 2
24.11.2014, 00:59 4
Цитата Сообщение от LostDok Посмотреть сообщение
На std::to_wstring(res).c_str почему-то поругалось так:
там скобки() надо, c_str() - это функция
1
LostDok
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 49
24.11.2014, 01:17  [ТС] 5
Даже не заметил, что скобок нет.
Спасибо, сработало.
0
Fulcrum_013
1588 / 1071 / 124
Регистрация: 14.12.2014
Сообщений: 8,822
Завершенные тесты: 3
20.12.2014, 04:13 6
Цитата Сообщение от LostDok Посмотреть сообщение
Думаю, проблема в функции wsprintf (%i).
Проблема в незнании паттернов для функции wsprintf.

C++
1
wsprintf(str, TEXT("%f"), res);
0
Digit@ll
Brainsbreaker
888 / 366 / 51
Регистрация: 01.02.2011
Сообщений: 1,586
07.09.2015, 01:26 7
Цитата Сообщение от LostDok Посмотреть сообщение
Посоветуйте аналог wsprintf для double
Последний аналог только такой: #include <stdio.h>// sprintf_s
0
-JR-
4 / 4 / 2
Регистрация: 22.04.2015
Сообщений: 54
Завершенные тесты: 1
08.09.2015, 02:17 8
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Проблема в незнании паттернов для функции wsprintf.
Код C++
Выделить код
1
wsprintf(str, TEXT("%f"), res);
Проблема в том, что wsprintf реализует только символьные и целочисленные типы.
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
0
Геомеханик
788 / 595 / 937
Регистрация: 26.06.2015
Сообщений: 1,409
08.09.2015, 14:17 9
C++
1
2
3
4
5
6
7
8
#include <tchar.h>
 
//...
 
double n = 23.14567;
 
TCHAR buf[32];
_stprintf(buf, _T("%lf"), n);
0
08.09.2015, 14:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2015, 14:17

Проверить вхождение в строку типа PWSTR
Привет, все так сложно после ровного си шарпа) Есть переменная типа PWSTR как...

Как сгенерировать случайное число типа я double имея на входе 2 числа типа double - минимальное и максимальное
Например: public class ExtendedRandom : Random { public...

Как из числа типа double получить текстовую строку?
Как в Matlab-е из числа типа double получить текстовую строку?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru