C++实现文件数据提取,具体实现代码如下:
/***数据提取***/#include<iostream>#include<fstream>#include<string>using namespace std;int main(){system("color 1e");string goal,text[200];int i(0),i1(0),i3(1),i4(-1);double i2[200];cout<<"请将要提取数字的文件拖到此处:"<<endl;cin>>goal;ifstream f(goal.c_str());text[0]="不为空";while(!text[i].empty()){i++;f>>text[i];}f.close();/*for(int j=1;j<i;j++){for(int r=0;r<text[j].length();r++)if(text[j][r]>='0'&&text[j][r]<='9'){i2[i1]=atoi(text[j].substr(r,text[j].length()-r).c_str());i1++;break;}}*/for(int j=1;j<i;j++){for(int r=0;r<text[j].length();r++){if(text[j][r]>='0'&&text[j][r]<='9'||text[j][r]=='.'){if(i4==-1)i4=r;if((text[j][r]>='0'&&text[j][r]<='9'||text[j][r+1]=='.')&&r==text[j].length()-1){i2[i1]=atof(text[j].substr(i4,i3).c_str());i3=1;i1++;i4=-1;continue;}if(text[j][r+1]>='0'&&text[j][r+1]<='9'||text[j][r+1]=='.')i3++;}else if(i4!=-1){i2[i1]=atof(text[j].substr(i4,i3).c_str());i3=1;i1++;i4=-1;}}}cout<<"从文件中提取出来的数据为:"<<endl;for(int j1=0;j1<i1;j1++)cout<<i2[j1]<<endl;return 0;}