小编mas*_*bro的帖子

如何从C++中的char*中获取浮点数?

我是C++的新手,来自幸福快乐的Python世界.

我决定编写一组函数来查找一组数字的均值,中位数,模式和范围.为了帮助计算中位数,我决定制作l2g(最小到最大)和g2l(最大到最小).我知道我只会使用其中一种,但是为了完整起见,我想两者兼顾.

我希望我的程序尽可能少依赖外部(甚至标准)库.这样做的原因是我很可能会使用我再写的任何函数.它们将在我基于BrokenThorn教程开发的操作系统中使用.因此,我想保持代码尽可能独立,使用我编写的函数而不是标准库中的函数.

我有两个问题:

  • 首先,我希望我的函数能够处理浮点值.使用我之前创建的用户输入函数,我得到一个指向char数组的指针.我需要知道如何将其转换为浮点值.我想也许我可以用char和float类型的两个成员创建一个联合,并在我需要使用该值时引用float成员.我只是将用户数据放入char成员.但是,我不知道这种方法是否有效.我使用的教程并不是非常深入地定义我自己的数据类型.
  • 我的第二个困境是我不知道如何创建l2g和g2l函数.我正计划将两个for循环嵌套.我打算使用内部的数字来查找新数组中的下一个数字,然后使用外部数字重复此过程,直到它遍历原始数组中的所有数字.然后,在删除第一个数组的动态内存后,该函数将返回指向新浮点数组的指针.

另一个问题是,当我返回指向它的指针时,我认为我需要返回数组的长度.这样做的原因是使用for循环来遍历该数组的内容,我需要在数组中使用最高位置,所以我不会得到垃圾.我有办法通过制作一个有两个成员,长度和数组的结构来避免这个问题.它看起来像这样:

struct arrayLength {
    int l;
    float * p;
} ;
Run Code Online (Sandbox Code Playgroud)

我希望以下一组电话:

float * myArrayPointer; // I will change this to user input once I get the rest of the program working
myArrayPointer = new float[5];
myArrayPointer[0] = 65.97;
myArrayPointer[1] = 21.06;
myArrayPointer[2] = 21.06;
myArrayPointer[3] = 509.69;
myArrayPointer[4] = -41.73; // Can floats be negative?
cout << mean(myArrayPointer, 5); // Give function mean the pointer to array and number of elements
cout << …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
1153
查看次数

标签 统计

c++ ×1