2016-05-14 3 views
-3

Ich schrieb dieses Stück Code, der Daten aus der Textdatei StudentRec.txt liest, die Daten in verschiedenen Zeilen und Spalten enthält und es anzeigt. Das Programm kompiliert gut, wird aber nicht ordnungsgemäß ausgeführt.Lesen von Daten von Spalten und Zeilen aus Textdateien in dev C++

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; 
    } 
} 
+0

Was meinen Sie mit "wird nicht ordnungsgemäß ausgeführt"? Stürzt es ab? Falsches Ergebnis anzeigen? Etwas anderes? Kannst du bitte etwas ausarbeiten? Und können Sie bitte den Inhalt der Eingabedatei anzeigen? Und bitte [lies darüber, wie man gute Fragen stellt] (http://stackoverflow.com/help/how-to-ask). –

+0

gut .. es stürzt ab –

+0

Warum liest du zweimal in 'rows' und' columns'? –

Antwort

2

Während Sie meinen Kommentar denken, und wie können Sie Ihre Frage zu verbessern, das eigentliche Problem ist diese Zeilen:

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

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

Vor allem C++ nicht variable-length arrays haben, obwohl einige Compiler es erlauben als Erweiterung. Aber das wirkliche Problem ist, dass Sie Arrays der Größe Zero erstellen. Alle Indizierung wird außerhalb der Grenzen sein und führen zu undefined Verhalten.

Wenn der Compiler ermöglicht Arrays variabler Länge, die Definition der Arrays zu bewegen, nachdem Sie die Größen in rows und columns lesen.

Verwandte Themen