Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 16:35   #1
acronis2000
Пользователь
 
Регистрация: 15.05.2011
Сообщений: 11
По умолчанию преобразование строки в число

Добрый день.

Есть переменная TCHAR с числовым значением с точкой вместо запятой (например 3.14) - как ее преобразовать в числовое значение float
acronis2000 вне форума Ответить с цитированием
Старый 04.06.2011, 17:59   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Там точка и нужна.
http://www.cplusplus.com/reference/c.../cstdlib/atof/
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 04.06.2011, 19:10   #3
acronis2000
Пользователь
 
Регистрация: 15.05.2011
Сообщений: 11
По умолчанию

выдает ошибку

у меня переменная TCHAR

E2034 Cannot convert 'wchar_t[10]' to 'const char *'
E2342 Type mismatch in parameter '__s' (wanted 'const char *', got 'wchar_t *')

Последний раз редактировалось acronis2000; 04.06.2011 в 19:14.
acronis2000 вне форума Ответить с цитированием
Старый 04.06.2011, 19:16   #4
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Так объявите ее char, или вам wchar_t и нужно?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 04.06.2011, 19:16   #5
N1KeL
Пользователь
 
Аватар для N1KeL
 
Регистрация: 20.04.2009
Сообщений: 58
По умолчанию

ну так переведите в char*:
Код:
float f = atof((char*)t);
N1KeL вне форума Ответить с цитированием
Старый 04.06.2011, 19:21   #6
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

N1KeL
Такого оригинального перевода из wchar_t в char еще не встречал. Действительно, зачем там кто-то парился, писал кучу разных библиотечных функций для их перевода...
А почему бы тогда в float так не перевести:
Код:
float f = (float)str;
?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 04.06.2011, 19:23   #7
acronis2000
Пользователь
 
Регистрация: 15.05.2011
Сообщений: 11
По умолчанию

ну да - нужно оставить TCHAR.

а каким образом преобразовать TCHAR в CHAR - ? в принципе это бы решило вопрос
acronis2000 вне форума Ответить с цитированием
Старый 04.06.2011, 19:26   #8
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Есть такая вещь - Google, а если конкретнее, то wcstombs:
http://www.cplusplus.com/reference/c...dlib/wcstombs/

Только, насколько я знаю TCHAR - это макрос, так что как альтернатива нажать <Alt+F7> -> Configuration Properties -> Character Set -> Use Multi-Byte Character Set;
если же это вам не по душе, то использовать функцию перевода с препроцессором, т.е. как-то так:
Код:
#ifdef _UNICODE
f = atof(wcstombs(...));
#else
f = atof(...);
#endif
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Stilet; 04.06.2011 в 20:48.
Syuf вне форума Ответить с цитированием
Старый 04.06.2011, 19:34   #9
N1KeL
Пользователь
 
Аватар для N1KeL
 
Регистрация: 20.04.2009
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Syuf Посмотреть сообщение
N1KeL
Такого оригинального перевода из wchar_t в char еще не встречал. Действительно, зачем там кто-то парился, писал кучу разных библиотечных функций для их перевода...
А почему бы тогда в float так не перевести:
Код:
float f = (float)str;
?
А что в нем не так? Написанное вами невозможно в принципе, поэтому и существуют дополнительные функции, а то что написал я - вполне возможно, так почему бы это не использовать?
N1KeL вне форума Ответить с цитированием
Старый 04.06.2011, 19:39   #10
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Цитата:
невозможно в принципе
Компьютер взорвется, если написать?
Цитата:
А что в нем не так?
Да то, что это не перевод, а фигня какая-то. Как вы прекрасно знаете char занимает 1 байт, wchar_t два, теперь представьте, что будет содержать char строка, когда вы ее так "переведете".
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование в число (Delphi) I.nessa Помощь студентам 14 14.12.2010 15:18
Преобразование строки символов в число. pa6kevi4 Общие вопросы C/C++ 2 15.09.2009 20:46
Преобразование строки Neeter Общие вопросы C/C++ 5 05.07.2009 16:25
преобразование строки xaero93 Помощь студентам 3 05.03.2009 13:00
Преобразование даты в вещественное число nova-alex Общие вопросы Delphi 5 03.05.2007 10:51