Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ и WinAPI

Войти
Регистрация
Восстановить пароль
 
LostDok
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 49
#1

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

24.11.2014, 00:34. Просмотров 898. Ответов 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 (C++ WinAPI):

Перевод double в строку TCHAR - C++ WinAPI
Здраствуйте задача стоит перевесть дабл в тчар! функцией wsprintf(str, L"%d", num); не подходит так можно только интовое значение! ...

Как преобразовать строку из CHAR в TCHAR - C++ WinAPI
Добрый день ! Подскажите пожалуйста, как преобразовать строку из CHAR c = ("ПРИВЕТ КАТЯ !!!"); в TCHAR d = _T(""); не снимая...

Как привести строку типа TCHAR в int - C++
Есть строка TCHAR tmp; в ней записано число, нужно вытащить это число и записать его в переменную типа Int. Раньше я использовал для этого...

Как сравнить TCHAR - C++ WinAPI
Доброго времени суток. Как сравнить TCHAR переменные? THCAR age,age2; В общем вводят в поле ввода возраст, я его ложу в age, задача...

Как в DLL положить иконку - C++ WinAPI
Добрый день! Подскажите пожалуйста, как в DLL положить иконку. Код имеет следующий вид #include "stdafx.h" #include...

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

8
Max Dark
шКодер самоучка
1853 / 1653 / 603
Регистрация: 09.10.2013
Сообщений: 3,679
Записей в блоге: 6
Завершенные тесты: 2
24.11.2014, 00:48 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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
шКодер самоучка
1853 / 1653 / 603
Регистрация: 09.10.2013
Сообщений: 3,679
Записей в блоге: 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
721 / 827 / 84
Регистрация: 14.12.2014
Сообщений: 6,509
Завершенные тесты: 3
20.12.2014, 04:13 #6
Цитата Сообщение от LostDok Посмотреть сообщение
Думаю, проблема в функции wsprintf (%i).
Проблема в незнании паттернов для функции wsprintf.

C++
1
wsprintf(str, TEXT("%f"), res);
0
Digit@ll
Brainsbreaker
884 / 362 / 31
Регистрация: 01.02.2011
Сообщений: 1,586
07.09.2015, 01:26 #7
Цитата Сообщение от LostDok Посмотреть сообщение
Посоветуйте аналог wsprintf для double
Последний аналог только такой: #include <stdio.h>// sprintf_s
0
-JR-
4 / 4 / 1
Регистрация: 22.04.2015
Сообщений: 51
Завершенные тесты: 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
Геомеханик
742 / 548 / 380
Регистрация: 26.06.2015
Сообщений: 1,301
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
Привет! Вот еще темы с ответами:

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

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

Перевести строку типа string, в строку типа double - C++
Помогите с кодом. Как строку типа стринг, например 123123.123123, перевести в тип double? Кода перевожу с помощью &quot;atof&quot; оно берёт только...

Создать структуру включающую в себя константу типа double, закрытое поле типа double - C#
Помогите пожалуйста с заданием, создать структуру включающую в себя константу типа double, закрытое поле типа double, которому при...


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

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

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