【求助】C++读文件异常-读出的数据(浮点数)整数位被置零。
利用ifstream读文件,发现读出的数据(浮点数)每隔若干个数整数位被置为零了。
前13个正常,都是3.0488 ,-1.81439, 0.94929,-0.825004,0.895662,-0.270324,0.03977,0.667674,0.133245,0.375154,-0.140888,0.07932,-0.281494。
接下来每隔13个数有一个异常。
第14-25个:
写进去的数据是:2.52137,-1.83988,2.16424,-1.0637,0.798679,-0.580831,0.909838,0.797118,0.281998,0.409642,-0.242933,0.930025,-0.515211
读出来的数据是:0.52137,-1.83988,0.16424,-1.0637,0.798679,-0.580831,0.909838,0.797118,0.281998,0.409642,-0.242933,0.930025,-0.515211
以后每隔13个数都有这个现象。
附上读写文件部分代码:
写文件:
ofstream ofs(file_name,ios::out|ios::trunc);
if(!ofs)
return false;
for(i=0;i<VQ_SIZE;i++) {
for(j=0;j<13;j++)
{
ofs<<R0[i][j];
}
}
ofs.close();
读文件:
//读文件
ifstream ifs(file_name,ios::in);
if(!ifs)
return false;
for(i=0;i<VQ_SIZE;i++)
for(j=0;j<13;j++)
ifs>>R0[i][j];
ifs.close();