您的位置:首页 > 编程语言 > C语言/C++

C++实现文件数据提取

2013-06-21 15:04 246 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: