gpt4 book ai didi

c - Atof 不能在 C 中工作,没有 atof 也不能在调试中工作

转载 作者:行者123 更新时间:2023-11-30 14:55:04 24 4
gpt4 key购买 nike

我的 Atof 功能有问题。我正在尝试将字符串转换为 float ,但当我在 Coocox 软件的“调试”部分中尝试时,它没有给出任何错误,输出没有显示任何内容。我尝试了两个函数Atoi和Atof。当我使用 Atoi 时,没有输出。当我使用 Atof 时,程序开始重新启动。我把 atof 的 stdlib.h 定义放在这里。但是这里的 float 值是 atoff。我在 Dev 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));
------------------------------------

最佳答案

纠正所有编译器警告后,生成的代码如下:

注意:由于没有使用数组功能,所以我将其改为简单的指针。这对输出没有影响。

#include <stdio.h>   // printf()
//#include <string.h> -- contents not used
#include <stdlib.h> // atoi(), atof()

int main ()
{
float c;
int b;

char *array = {"52.43525"};

b = atoi(array);
c = ( (float)( atof(array) ) / 100.0f ) * 100.0f;
c /= 60.0f;
c += (float)b;

printf ("%f\n", c);

return 0;
}

运行该程序的结果是:

52.873920

因此,如果您的编译器未找到 atof(),则说明编译器存在问题。

关于c - Atof 不能在 C 中工作,没有 atof 也不能在调试中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46264945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com