2016-04-20 13 views
0

Ich möchte Daten aus einer Datei extrahieren und sie in der myWorld speichern, aber meine for-Schleife funktioniert nicht, das Programm führt keine Schleife einmal nach der for-Schleife. Ich bin mir nicht sicher, was das Problem ist. Das ist bisher mein Code.Einfügen von Informationen aus einer Datei in eine Struktur

#include <iostream> 
#include <fstream> 
#include <string> 
#include <cstdlib> 
using namespace std; 

struct Country 
{ 
    double pop1950; 
    double pop1970; 
    double pop1990; 
    double pop2010; 
    double pop2015; 
    string name; 
}; 

const int MAXCOUNTRIES = 300; 

struct World 
{ 
    int  numCountries; 
    Country countries[MAXCOUNTRIES]; 
} myWorld; 

void printPop(); 

int main() 
{ 
printPop(); 
return 0; 
} 

void printPop() 
{ 
ifstream inFile("population.csv"); 

if (!inFile.fail()) 
{ 
    cout << "File has opened successfully."; 
} 

if (inFile.fail()) 
{ 
    cout << "File has failed to open."; 
    exit(1); 
} 

for (int i = 0; i < MAXCOUNTRIES; i++) 
{ 
    inFile >> myWorld.countries[i].pop1950 >> myWorld.countries[i].pop1970 >> myWorld.countries[i].pop1990 
      >> myWorld.countries[i].pop2010 >> myWorld.countries[i].pop2015; 
    getline (cin, myWorld.countries[i].name); 
    cout << "loop is running" << endl; 
} 

    inFile.close(); 
} 

Antwort

3

Ich denke, Ihre Schleife läuft, seine für die Benutzereingabe nur darauf warten hier:

getline (cin, myWorld.countries[i].name); 
+0

Thank you! Ich habe das Programm durch Ändern dieser Zeile korrigiert. –

+0

@ H.C Wenn Sie die Gelegenheit erhalten, markieren Sie dies als die Antwort. David bekommt Punkte und zukünftige Leser können leicht erkennen, dass dies wirklich die Antwort war. – user4581301

Verwandte Themen