我正在尝试将一些浮点数从文件存储到数组中,以便进一步使用它们。到现在为止,我正在测试我的函数以查看它是否存储了某些东西,但我在输出中得到的只是一个零值的数组。 我的文件有很多行,每行写入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();
}
答案 0 :(得分:1)
在我的电脑上,这有效。 你检查了你的ifstream吗?
ifstream inp(input),
if (!inp) {
std::cout << "Failed to open the file";
}
另一件事,使用std::array或std::vector而不是C风格的数组和指针。
答案 1 :(得分:0)
我发现了什么问题。
1)我用绝对路径替换了文件的相对路径。
2)我的号码用逗号分隔。删除逗号后,我的数组加载了我的文件中的数字。