- /***
- 数据提取
- ***/
- #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;
- }
- //该片段来自于http://www.codesnippet.cn/detail/140320149017.html
来源: http://www.codesnippet.cn/detail/140320149017.html