将float numbers form.dat文件读入C++; 我对C++很陌生,我有个问题:
我有一个给定的带有浮点数的.dat文件。由于.dat文件的条目数在princple中是未知的,所以我考虑使用一个向量。如果.dat文件仅包含整数,则此过程工作正常。但是,我无法实现浮动的升级将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
确切地说,考虑一个文件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;
}