之前没用过fstream(说实话刚开始编程,很多东西都没用过),模块里有一部分要把数据保存下来,但为了确定保存的数据正确,就像再加一段把数据读出来看,保存的文件用python查看是对的,但用c++解析死活不对,值总是空的,最后发现是读取的位置错了。代码如下:
fstream wfile;
fstream wfile2;
wxString filename;
vector temp;
cout<<“meanpower len is”<<vMeanPower.size()<<endl;
if (b_BoundaryStyle){
filename = wxString(xxx);
wfile.open(filename.ToStdString().c_str(),ios_base::in|ios_base::out|ios_base::app);//这里的app意思是接着读写,改成ios_base::trunc就可以把内容清空再写
double tmp = new double[vMeanPower.size()];
memcpy((double)tmp, (double*)&vMeanPower[0],
vMeanPower.size()sizeof(double));//把MeanPower中的数据copy到数组tmp里,复制的都是些字节有sizedouble长度那么多,这里用的引用,应该不占内存(猜的,代码我抄别人的T_T)
wfile.write((char*)tmp,vMeanPower.size()sizeof(double));//把刚才一堆字节的tmp写到文件里
wfile.close();
wfile