C ++如何使用矢量struct的push_back()成员

时间:2017-05-04 00:17:47

标签: c++ vector struct push-back

我有这个结构:

 struct human{
 int ma;
 double su;
 string nev;

};

这部分在main()中:

    vector<human> t;
    fstream inf("in.txt");

我希望通过以下方式阅读文件中的信息:

while(!inf.eof())
   {
       t.push_back(??????);

   }

t.push_back(??????); 我想把文件中的东西放到我的vector struct

 int ma;
 double su;
 string nev;

文件中的数字元素未知。 所以最大的问题是如何使用push_back();来填充我的结构? 抱歉没有问题:) 内容如下所示:(in.txt)

123
34.34
Dani
180
70.1
Victor
190
90
julika
200
45
rozika

1 个答案:

答案 0 :(得分:0)

您的循环可能如下所示:

for (;;)
{
    human h;
    inf >> h.ma;
    inf >> h.su;
    inf >> h.nev;

    if ( !inf )
        break;

    t.push_back( std::move(h) );
}

显然,阅读文件的细节取决于您没有指定的文件格式。永远不要在循环条件下使用eof(),实际上您要测试的是您是否成功读取了您尝试读取的数据。不是在某个时候是否存在文件结尾。