将文件中的信息插入到结构中

Inserting info from a file into a struct

本文关键字:结构 插入 文件 信息      更新时间:2023-10-16

我想从文件中提取数据并将它们存储到 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();
}

我认为您的循环正在运行,它只是在这里等待用户输入:

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