读取文件的操作1

今天的工作把一个excel表格用c++存储进内存,并取出最大值.excel表格有20个sheet,每个sheet表示一行,每个sheet内又有很多列,一个sheet内最多有20行。我需要将每行的每列的最大值求出来取出。



   程序如下:

#include<iostream>
#include<fstream>
#include<string>
#include<sstream>
#include<vector>
#include <TGraph.h>
using namespace std;
int test1()
{
fstream f1("D:\\1.txt", ios::in);
if (!f1)
{
cout << "读取错误";
return -1;
}
char title1[100];
char title2[100];
vector<float> *x=new vector<float>;
vector<float> *dat=new vector<float>;
x->clear();
dat->clear();
int count=0;
float dat_tmp=0;
char dat_tmp_char[100];
while(!f1.eof()){
if(count==0){
f1>>title1;
f1>>title2;
}
for(int i=0;i<10;i++){
f1>>dat_tmp_char;
// f1>>dat_tmp;
dat_tmp=atof(dat_tmp_char);
if(i==0){
x->push_back(dat_tmp);
if(count<10)cout<<i<< " " <<dat_tmp<<endl;
}
if(i!=0){
dat->push_back(dat_tmp);
if(count<1)cout<<i<< " " <<dat_tmp<<endl;
}
}
count++;
//break;
}
cout<<title1<<endl;
cout<<title2<<endl;
cout<<count<<endl;
cout<<x->size()<<endl;
cout<<dat->size()<<endl;
int gap=9;
float *max=new float[9];
int *index=new int[9];
for(int i=0;i<9;i++){max[i]=0;}
float x_v[9];
for(int i=0;i<9;i++){
for(int j=0;j<(int)x->size();j++){
if((*dat)[j*9+i]>max[i]){
max[i]=(*dat)[j*9+i];
index[i]=j;
}
}
}
float xx[9];
for(int i=0;i<9;i++){
xx[i]=(float)i;
cout<<index[i]<<" max["<<i<<"] = "<<max[i]<<endl;
}


// TGraph *gr=new TGraph(9,(double)index,(double)max);
TGraph *gr=new TGraph(9,xx,max);
gr->Draw("apl");

// delete []index;
// delete []max;
x->clear();
dat->clear();
delete x;
delete dat;

return 0;
}  


最后利用root画出我的每行的最大值。如下图



接下来的工作是需要把这19个文件的最大值利用root画在一张2D图上~~

此博客仅为记录自己研究生每天工作的点滴~~











猜你喜欢

转载自blog.csdn.net/qq_31376113/article/details/50038489
今日推荐