C++实现文件数据提取
2013-07-26 16:57 dhtj 阅读(816) 评论(0) 收藏 举报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;
} 转载请注明诚信在线下载http://www.ttt8888.com
浙公网安备 33010602011771号