将float numbers form.dat文件读入C++; 我对C++很陌生,我有个问题:

将float numbers form.dat文件读入C++; 我对C++很陌生,我有个问题:,c++,C++,我有一个给定的带有浮点数的.dat文件。由于.dat文件的条目数在princple中是未知的,所以我考虑使用一个向量。如果.dat文件仅包含整数,则此过程工作正常。但是,我无法实现浮动的升级 确切地说,考虑一个文件test .dAT: 5.7 90.1 以及相应的代码: #include <iostream> #include <fstream> #include <vector> using namespace std; int mai

我有一个给定的带有浮点数的.dat文件。由于.dat文件的条目数在princple中是未知的,所以我考虑使用一个向量。如果.dat文件仅包含整数,则此过程工作正常。但是,我无法实现浮动的升级

确切地说,考虑一个文件test .dAT:

    5.7
    90.1
以及相应的代码:

#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main()
{
    vector<float> vec;
    ifstream fin("Test.dat");
    int num;

    while (fin >> num)
        vec.push_back(num);


    for(int counti=0; counti<2 ; counti++)
    {
    cout<<vec[counti]<<endl;
    }

return 0;
}
如前所述,更改为
向量向量向量并相应地调整数据,结果令人满意

我非常感谢对上述问题的任何提示或解决方案和意见。 非常感谢你, Marc

如前所述,您的数据类型需要匹配。将
int num
更改为
float num

#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main()
{
    vector<float> vec;
    ifstream fin("Test.dat");
    float num;

    while (fin >> num)
        vec.push_back(num);


    for(int counti=0; counti<2 ; counti++)
    {
    cout<<vec[counti]<<endl;
    }

return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
向量向量机;
ifstream fin(“测试数据”);
浮点数;
而(fin>>num)
向量推回(num);

对于(int counti=0;counti要做的第一件事是对
num
的数据类型使用
float
double
而不是
int
。您不能将浮点数读入整数。您正在将double读入int变量,因此丢失了一些信息。请将
int num
更改为
double num
vec
知道它有多大。替换
countiok,太好了,非常感谢,我错过了那个声明!我想这解决了问题。再次感谢你。
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main()
{
    vector<float> vec;
    ifstream fin("Test.dat");
    float num;

    while (fin >> num)
        vec.push_back(num);


    for(int counti=0; counti<2 ; counti++)
    {
    cout<<vec[counti]<<endl;
    }

return 0;
}