私の主な質問は、 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 ++のファイルから一連のfloatをどのように読み取りますか、または何が間違っていますか?
編集:無限ループが必要でなく、eofフラグが設定されていなかったため、ループコードが乱雑になっています。