在C++中,在如下文件如何把数字读出来?

2025-03-06 14:31:48
推荐回答(1个)
回答1:

/***

数据提取

***/

#include

#include

#include

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<<"请将要提取数字的文件拖到此处:"<

   cin>>goal;

   ifstream f(goal.c_str());

   text[0]="不为空";

   while(!text[i].empty())

   {

    i++;

    f>>text[i];

   }

   f.close();

   /***根据你数据文件特点这段代码足以完成***///代码段1

   for(int j=1;j

   {

    for(int r=0;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;

   }

 

   }

   /*该段更具普适性代码段2

   for(int j=1;j

   {

        for(int r=0;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<<"从文件中提取出来的数据为:"<

    for(int j1=0;j1

    cout<

 return 0;

}


/***对于你所给数据文件的特点其实代码段1可以很好解决,程序中注释掉的代码段2为普通情况下的方法,可以直接替换代码段1且更具普适性,功能更强大***/