Форум программистов, компьютерный форум CyberForum.ru

Ошибка (записывается код символа, а не сам символ) - C++

Восстановить пароль Регистрация
 
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
18.12.2012, 06:49     Ошибка (записывается код символа, а не сам символ) #1
есть строка символов (принял из EditBox)

C++
1
2
3
4
CString str;
const char *strС;
 
strС=(const char*) str;
нужно число преобразовать в float или double

функций по переводу я не нашел - решил заморочиться написать свою. (округляю до 3 чисел после запятой)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
float CtoF(const char *strT)
{
    float   tmp,result;
    int     i=0,j,k;
 
    result=atoi(strT);                     // тут мы в result запишем целую часть числа
 
    while(strT[i]!='.')                      // двигаемся по строке к дробной части числа
    {
        i++;
    }
    i++;
    for(k=1;i<5;i++,k++)                 // этот цикл допишет нам во result дробную часть
    {
        tmp=strT[i];                      ///// и вот тут проблема. из строки strT в tmp записывается код символа а не сам символ. :(
        for(j=0;j<k;j++)
            tmp*=0.1;
        result+=tmp;
    }
 
    return result;
}
там можно конечно дописать -48 но тогда появляются проблемы если дробная часть содержит 0 (ведь у него код символа = 0)

итак:
вопрос0: как записать в float число (символ) из char *. а не код символа
вопрос1: как char * строку записать в float или double. (всяко есть функции)

Добавлено через 3 минуты
ой
atof

все забыли
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 06:49     Ошибка (записывается код символа, а не сам символ)
Посмотрите здесь:

C++ Неправильно записывается символ в файл
Разработать рекурсивную функцию, которая после каждого вхождения символа a в строку s добавляет символ b C++
Записываю в массив символ, а записывается его АСКИ код..как быть? C++
Код выводит сам себя C++
C++ В файл записывается мусор. Подкорректировать код
C++ Дан символ C и строка S .Удвоить каждое вхождение символа С в строку S
Дан символ С и строки S, S0. После каждого вхождения символа С в строку S вставить S0 C++
C++ Символ кириллицы распознается как 2 символа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LValue
11 / 11 / 0
Регистрация: 27.11.2011
Сообщений: 49
18.12.2012, 09:41     Ошибка (записывается код символа, а не сам символ) #2
Для пользы дела, что бы научиться писать и анализировать работу со строками и числами, я бы рекомендовал свою функцию написать. Пригодятся полученные знания и опыт.
Yandex
Объявления
18.12.2012, 09:41     Ошибка (записывается код символа, а не сам символ)
Ответ Создать тему
Опции темы

Текущее время: 10:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru