我的主要问题是如何读取不是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标志永远没有被设置。
fprintf
和scanf
应该可以跨机器移植。 - Zane