从文件中读取浮点数并将其存储到数组中

Reading float numbers from a file and storing them into an array C++

本文关键字:存储 数组 文件 读取 浮点数      更新时间:2023-10-16

我试图将一些浮点数从文件存储到数组中,以便进一步使用它们。到目前为止,我正在测试我的函数,看它是否存储了什么,但我在输出中得到的只是一个全是0的数组。我的文件有很多行,每行写200个数字。我的问题是如何加载所有的数字从文件到数组正确。谢谢!

下面是我的代码:
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
void LoadCoefs(const char* input, float output[], int size );
int main(int argc, const char * argv[])
{
    float* coefs;
    coefs = new float[200];
    LoadCoefs("CoefsFile", coefs, 200);
    for(int i=0; i<200;i++)
    {
        cout<< coefs[i] <<"n";
    }
    delete [] coefs;
    return 0;
}
void LoadCoefs(const char* input, float output[], int size )
{
    ifstream inp;
    inp.open(input);
    for(int i=0; i<size; i++)
    {
        inp >> output[i] ;
    }
    inp.close();
}

在我的电脑上这是有效的。你检查过你的信息流了吗?

ifstream inp(input),
if (!inp) {
  std::cout << "Failed to open the file";
}

还有一件事,使用std::array或std::vector代替c风格的数组和指针。

我已经找到问题所在了。

1)我已经用绝对路径替换了文件的相对路径。

2)我的号码用逗号隔开。删除逗号后,我的数组从我的文件中加载了数字。