2016-04-20 49 views
0

我想從文件中提取數據並將它們存儲到myWorld中,但我的for循環不起作用,程序一旦進入for循環就不會循環一次。我不確定問題是什麼。這是我的代碼到目前爲止。將文件中的信息插入結構中

#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(); 
} 

回答

3

我覺得你的循環運行,它只是在等待這裏用戶輸入:

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

謝謝!我通過更改該行來修復該程序。 –

+0

@ H.C當你有機會時,將其標記爲答案。大衛得到積分,未來的讀者可以很容易地看到,這確實是答案。 – user4581301