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

char в double - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
13.02.2013, 15:44     char в double #1
Как превратить char в double? Я хочу написать программу в которой вводится два числа и в результате выводится число типа double. Думал написать вот так, но в конце программы выбивает ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    char a[1],b[1];
    char str[4]="";
    cin>>a>>b;
    strcat(str,a);
    strcat(str,".");
    strcat(str,b);
    double c;
    c = atof(str);
    cout<<c;
    system("pause>0");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2013, 15:44     char в double
Посмотрите здесь:

Преобразование из char в double C++
C++ Перевод double в char
Из Char в Double C++
long double и char C++
C++ Конструктор double to char
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
13.02.2013, 16:21     char в double #2
#include <stdlib.h> ???
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
13.02.2013, 16:23     char в double #3
Жуть, а можно для начала попытаться прояснить, зачем нужно вводить 2 целых числа, конвертировать их в строки, конкатенировать, потом преобразовывать в вещественное и потом снова выводить?! Может, есть решение проще?
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
13.02.2013, 16:23     char в double #4
или #include <math.h>
Такое ощущение, что функция atof не определена. Она в разных компиляторах определяется в разных местах.
А еще проще
double atof(const char *s);
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
13.02.2013, 16:27     char в double #5
Да эта жесть запускается даже и как-то работает А в конце валится)
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
13.02.2013, 16:58  [ТС]     char в double #6
Возможно и есть решение лучше. но я не ищу легких путей
А по сути мне нужно ввести два int числа и чтобы из них получилось float,например:
input:
2 5
output:
2.5

intput:
-6 9
output:
-6.9
greenlight
 Аватар для greenlight
39 / 20 / 7
Регистрация: 23.01.2013
Сообщений: 104
Завершенные тесты: 1
13.02.2013, 17:14     char в double #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
    double a, b;
    cin >> a >> b;
    while(true)
    {
        if(b < 1)
        {
            break;
        }
        b *= .1;
    }
    cout << "\n" << a + b;
    cin.get();
    return 0;
}
Добавлено через 10 минут
Прошлый код не работает с отрицательными. Вот такой костыль решает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    double a, b;
    cin >> a >> b;
    bool someflag = false;
    if(a < 0)
    {
        b = abs(b);
        a = abs(a);
        someflag = true;
    }
    while(true)
    {
        if(b < 1)
        {
            break;
        }
        b *= .1;
    }
    if(someflag)
    {
        cout << (a + b) * -1;
    } else cout << "\n" << a + b;
    cin.get();
    return 0;
}
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
13.02.2013, 17:14  [ТС]     char в double #8
Ваша программа что-то не работает. И мне нужно чтобы числа a b были int a, b; а не double a, b;
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
13.02.2013, 17:21     char в double #9
C++
1
2
3
4
5
int a,b;
double c;
cin>>a>>b;
c=((double)a)+((double)b)/10;
//есть пару нюансов число состоит из цифр (0-9), соответственно нет проверки а и b, что это цыфры
greenlight
 Аватар для greenlight
39 / 20 / 7
Регистрация: 23.01.2013
Сообщений: 104
Завершенные тесты: 1
13.02.2013, 17:26     char в double #10
Цитата Сообщение от The_bolT Посмотреть сообщение
Ваша программа что-то не работает. И мне нужно чтобы числа a b были int a, b; а не double a, b;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    int a, b;
    double s;
    cin >> a >> b;
    bool someflag = false;
    if(a < 0)
    {
        b = abs(b);
        a = abs(a);
        someflag = true;
    }
    s = b;
    while(true)
    {
        if(s < 1)
        {
            break;
        }
        s *= .1;
    }
    s += a;
    if(someflag)
    {
        cout << s * -1;
    } else cout << "\n" << s;
    cin.get();
    return 0;
}
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
13.02.2013, 17:32     char в double #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
double ints_to_double(int a, int b)
{
    double frac = (b < 0 ? -b : b);
    
    while((frac /=10) >= 1);
 
    return a + (a < 0 ? -frac : frac);
}
 
int main()
{
    int a, b;
 
    std::cin >> a >> b;
    std::cout << std::fixed << ints_to_double(a, b);
    
    return 0;
}
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
13.02.2013, 20:12     char в double #12
Цитата Сообщение от The_bolT Посмотреть сообщение
но я не ищу легких путей
Старина, а следовало бы)))
booker
 Аватар для booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
13.02.2013, 21:32     char в double #13
C++
1
char str[4]="";
это что?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2013, 22:14     char в double
Еще ссылки по теме:

C++ Преобразование long double в char
Перевод int и double в char* C++
C++ Перевод из double в char

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

Или воспользуйтесь поиском по форуму:
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
13.02.2013, 22:14  [ТС]     char в double #14
Это чтобы била пустая строка. Когда будет исполниться strcat(str,a); то первый элемент будет не этот что мы вставляем, а из памяти компьютера.
Yandex
Объявления
13.02.2013, 22:14     char в double
Ответ Создать тему
Опции темы

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