0

我想创建一个包含双精度和字符串向量的结构。我试过这个

int main ()
{   
  struct List
  {
      double price;
      vector<string> items;
  };

  List list;

  ifstream infile ("Aap.txt");

  double p;
  infile>>p;
  list.price=p;
  cout<<list.price<<endl;

  int i=0;
  string name;
  getline(infile,name);

  while(infile)
  {
      list.items.push_back(name);
      cout<<list.items[i]<<endl;
      i++;
      getline(infile,name);
  }
  infile.close();

  if (!infile)
  {
      cout<<"File closed."<<endl;
  }

return 0;

这没有填充我的向量,因为它不是我想的结构中的引用?

但是当我将结构中的向量定义为:

vector<string>& items;

我收到一条错误消息:

错误:具有未初始化引用成员的结构“列表”。

我怎样才能解决这个问题?

感谢您的帮助!

4

1 回答 1

0

您的代码运行良好。

第一次读取有一个小问题:如果您的输入文件中在价格值之后有一个换行符,则该换行符将保持未读状态。在这种情况下,第一次调用getline将读取一个空字符串,这意味着items数组中的第一个名称最终将为空。

于 2012-12-11T01:18:31.677 回答