从dev c ++中的文本文件中读取列和行的数据

时间:2016-05-14 08:03:12

标签: c++

我写了这段代码,它从文本文件StudentRec.txt读取数据,其中包含不同行和列的数据并显示它。该程序编译得很好,但没有正确执行。

ifstream infile; 
infile.open("StudentRec.txt"); 

int rows(0); 
int columns(0);   

string lname[rows][columns]; 
int id[rows][columns]; 
int Age[rows][columns]; 
double gpa[rows][columns]; 

infile>>rows>>columns;
infile>>rows>>columns;  

for(int i=0;i<6;i++) 
{ 
  for(int j=0;j<4;j++) 
  { 
   infile>>lname[i][j]>> id[i][j]>> Age[i][j]>> gpa[i][j];
   cout<<lname[i][j]<<"\t"<<id[i][j]<<"\t"<<Age[i][j]<<"\t"<<gpa[i][j]<<endl;
  }
} 

1 个答案:

答案 0 :(得分:2)

当您考虑我的评论以及如何改进您的问题时,实际问题是以下几点:

int rows(0); 
int columns(0);   

string lname[rows][columns]; 
int id[rows][columns]; 
int Age[rows][columns]; 
double gpa[rows][columns]; 

首先,C ++没有variable-length arrays,但有些编译器允许它作为扩展。但真正的问题是你正在创建大小的数组。所有索引都将超出范围,并导致未定义的行为

如果编译器允许可变长度数组,则在之后将数组的定义移动到,并将大小读入rowscolumns