C++,读入txt并存进二维数组
如图,有这样一个txt文件,我想读取这个txt里面的内容并存进一个二维数组里面,其中,第一列要做二维数组的第一个下表,第二列做第二个下标,第三列做前面两列对应下标的值,第...
如图,有这样一个txt文件,我想读取这个txt里面的内容并存进一个二维数组里面,其中,第一列要做二维数组的第一个下表,第二列做第二个下标,第三列做前面两列对应下标的值,第四列忽略不处理,共有八万行,但是每列多少个不同数值不知道,请问怎么写?
展开
1个回答
展开全部
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询