У меня проблемы с функцией Atof. Я пытаюсь преобразовать строку в число с плавающей запятой, но это не дает никаких ошибок, когда я пытаюсь использовать программное обеспечение Coocox в разделе «Отладка», вывод ничего не показывает. Пробовал две функции Atoi и Atof. Когда я использую Atoi, выхода нет. Когда я использую Atof, программа начинает перезапускаться. Я поместил определение stdlib.h для atof здесь. Но здесь atoff для значения с плавающей запятой. Я попробовал тот же код в Dev C++ в C, он работает очень хорошо. Другие вещи я использую без работы Atof, но в этот раз снова перезапуск программы. Это работает на Dev C. Но не на Coocox. Как я могу решить проблему? Разница только в офф! С чем это может быть связано? Я использовал stdlib.h, и ошибки при компиляции нет!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ()
{
float c;
int b;
char *array[1] = {"52.43525"};
b=(atoi(array[0])/100);
c=((atof(array[0]))/100.0)*100.0;
c/=60;
c+=b;
printf ("%f\n", c);
return 0;
}
-----stdlib.h----
double _EXFUN(atof,(const char *__nptr));
#if __MISC_VISIBLE
float _EXFUN(atoff,(const char *__nptr));
#endif
int _EXFUN(atoi,(const char *__nptr));
int _EXFUN(_atoi_r,(struct _reent *, const char *__nptr));
long _EXFUN(atol,(const char *__nptr));
long _EXFUN(_atol_r,(struct _reent *, const char *__nptr));
------------------------------------
atof()
не работает, вам следует упростить код, чтобы убедиться, что проблема именно в нем. - person Clifford   schedule 17.09.2017float c
изменить наdouble c
? - person chux - Reinstate Monica   schedule 17.09.2017(atoi(array[0]) / 100)
оценивается как 0. - person chux - Reinstate Monica   schedule 17.09.2017puts("0.873921");
, что исключает необходимость в библиотеках FP. Предложите сделать код не столь детерминированным (например, добавить пользовательский ввод) и убедиться, что компиляция включает поддержку FP. - person chux - Reinstate Monica   schedule 17.09.2017"char *s = "52.43525"; c = atof(s)";
или дажеc = atof("52.43525");
, чтобы попытаться сузить круг вашей проблемы. - person Steve Summit   schedule 17.09.2017char s[] = "52.43525";
. Все другие формы приводят к литералу только для чтения, и библиотека может задохнуться от этого. - person Paul Ogilvie   schedule 17.09.2017