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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
#1

Ошибка в преобразовании строки в double - C++

25.04.2014, 17:56. Просмотров 422. Ответов 5
Метки нет (Все метки)

Почему вот тут все правильно, то есть 5.5 остается 5.5:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
void main( int ArgC, char *ArgV[ ] )
{
    char *str = new char[20];
    gets(str);
    _CRT_DOUBLE crt;
    _atodbl(&crt,str);
    std::cout << crt.x << std::endl;
    delete [] str;
    system("pause");
}
А вот тут 5.5 превращается в 5:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
_CRT_DOUBLE for_radius;
    double vradius;
    cout << "ArgV[4]: " << ArgV[4] << endl;
    if ( _atodbl(&for_radius,ArgV[4]) != 0 )
    {
        cerr << "Ошибка № 12. В командной строке "
        "недопустимый формат аргумента командной "
        "строки, задающего радиус.\n";
        vradius = 0;
    }
    else
        vradius = for_radius.x;
    cout << "for_radius.x: " << for_radius.x << endl;
    cout << "vradius: " << vradius << endl;
Какая между ними разница?

Добавлено через 43 минуты
актуально
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 17:56     Ошибка в преобразовании строки в double
Посмотрите здесь:

C++ Ошибка: невозможно преобразовать 'double' в 'double'
Из-за чего появилась ошибка "сбой при преобразовании в COFF"? C++
C++ Ошибка error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден
Шаблон класса complex. Ошибка undefined reference to `complex<double>::SetRe(double)' C++
Ошибка в преобразовании типов C++
Ошибка Error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден C++
Ошибка с комплексными числами при дискретном преобразовании Фурье C++
Ошибка этапа исполнения при преобразовании символов в верхний регистр C++
Ошибка "Сбой при преобразовании в COFF: файл недопустим или поврежден" C++
C++ Ошибка при преобразовании числа в строку: "неоднозначный вызов перегруженной функции"
C++ В функции GetRandChar ошибка в преобразовании char в wchar_t
C++ Ошибка при преобразовании int в fpos_t

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12891 / 7277 / 811
Регистрация: 27.09.2012
Сообщений: 17,976
Записей в блоге: 2
Завершенные тесты: 1
25.04.2014, 20:14     Ошибка в преобразовании строки в double #2
Какие параметры подаете в main?
Ошибка в преобразовании строки в double
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
26.04.2014, 08:38  [ТС]     Ошибка в преобразовании строки в double #3
Адреса программы, входного выходного файлов, и два числа.
Я решила проблему - перенесла этот фрагмент кода в начало программы. Хотелось бы знать, как это влияет на процесс, ведь этот параметр, да и остальные, не менялись.
Croessmah
Модератор
Эксперт CЭксперт С++
12891 / 7277 / 811
Регистрация: 27.09.2012
Сообщений: 17,976
Записей в блоге: 2
Завершенные тесты: 1
26.04.2014, 20:00     Ошибка в преобразовании строки в double #4
Цитата Сообщение от Керра Посмотреть сообщение
Хотелось бы знать, как это влияет на процесс, ведь этот параметр, да и остальные, не менялись.
ну так код покажите, мы же не видим что у Вас написано.
Могу предположить, что устанавливаете локаль с другим десятичным разделителем.
-=ЮрА=-
Заблокирован
Автор FAQ
26.04.2014, 21:26     Ошибка в преобразовании строки в double #5
Цитата Сообщение от Керра Посмотреть сообщение
_CRT_DOUBLE crt;
* * _atodbl(&crt,str);
- что за глупое преобразование?(зачем привязываться к платформе)
кто мешает произвести привычный Си либо С++ ввод самого дабла
C
1
scanf("%lf", &param);
C++
1
cin>>param;
либо если преообразуем из строки
C
1
sscanf(str, "%lf", &param);
C++
1
2
stringstream ss(str);
double param;ss>>param;
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
27.04.2014, 09:30  [ТС]     Ошибка в преобразовании строки в double #6
-=ЮрА=-, это заказ, человеку сказали именно таким вот способом сделать.
Yandex
Объявления
27.04.2014, 09:30     Ошибка в преобразовании строки в double
Ответ Создать тему
Опции темы

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