C++,读入txt并存进二维数组

如图,有这样一个txt文件,我想读取这个txt里面的内容并存进一个二维数组里面,其中,第一列要做二维数组的第一个下表,第二列做第二个下标,第三列做前面两列对应下标的值,第... 如图,有这样一个txt文件,我想读取这个txt里面的内容并存进一个二维数组里面,其中,第一列要做二维数组的第一个下表,第二列做第二个下标,第三列做前面两列对应下标的值,第四列忽略不处理,共有八万行,但是每列多少个不同数值不知道,请问怎么写? 展开
 我来答
仙戈雅3n
2013-12-08 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:898万
展开全部
#include <iostream>
#include <fstream>
#define  ROW_MAX 80000 // 假设最多有8万行
#define  COL_MAX 3     
using namespace std;

void Output(unsigned int dig[ROW_MAX][COL_MAX],int actual)
{
for (int i=0;i<actual;i++)
{
for (int j=0;j<COL_MAX;j++)
{
          cout<<dig[i][j]<<" ";
}
       cout<<endl;
}
}

int main(int argc, char *argv[])
{
char str[255],dest[12];
int row,col,index,iBlank,start=-1,len,record;
unsigned int digits[ROW_MAX][COL_MAX];
    row=col=index=iBlank=len=record=0;
    ifstream in("样本测试数据.txt");  // 目标文件名

    if(!in){ // 未发现目标文件
      cout<<"Cannot open file."<<endl; 
      exit(1);
}
   
    while(in){
      in.getline(str,255);     
      while (index<100)
      {
     if(isdigit(str[index]))
 {
  if(start==-1) start=index;
 }
 else if(start>-1)
 {
 len=index-start;
 strncpy(dest,&str[start],len);
 dest[len]='\0';
 digits[row][col]=atoi(dest);
 ++col;
 start=-1;
 ++iBlank;
 
 if(iBlank>3) 
 {
 // 对变量进行初始化,为下一次提取做准备
 len=index=col=iBlank=0;
 start=-1;
                 break;
 }
 }
 ++index;
 
      }

  ++row;
  ++record;
  str[255]=NULL;
   }
   in.close();
   
   Output(digits,record);
   return 1;
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式