我的主要问题是关于如何从非char数据类型的文件中读取数据。我正在从 MATLAB 编写一个数据文件,如下所示:
x=rand(1,60000);
fID=fopen('Data.txt','w');
fwrite(fID,x,'float');
fclose(fID);
然后,当我尝试使用以下代码在 C++ 中读取它时,“num”不会改变。
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream fin("Data.txt",ios::in | ios::binary);
if (!fin)
{
cout<<"\n Couldn't find file \n";
return 0;
}
float num=123;
float loopSize=100e3;
for(int i=0; i<loopSize; i++)
{
if(fin.eof())
break;
fin >> num;
cout<< num;
}
fin.close();
return 0;
}
我可以在matlab中很好地读写文件,我可以用c++读写,但是我不能用matlab写和用c++读。我在 matlab 中编写的文件是我想要的格式,但 c++ 中的文件似乎是在文本中写入/读取数字。您如何从 C++ 文件中读取一系列浮点数,或者我做错了什么?
编辑:循环代码很乱,因为我不想要无限循环,并且从未设置过 eof 标志。