Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;如何推回向量结构的()成员_C++_Vector_Struct_Push Back - Fatal编程技术网

C++ C++;如何推回向量结构的()成员

C++ C++;如何推回向量结构的()成员,c++,vector,struct,push-back,C++,Vector,Struct,Push Back,我得到了这个结构: struct human{ int ma; double su; string nev; }; 这一部分在main()中: 使用t.push_back(?) 我想把文件中的东西放到向量结构中 int ma; double su; string nev; 文件中的元素数未知。 所以最大的问题是如何使用push_back()填充我的结构? 对不起,没有问题:) 内容如下:(in.txt) 您的循环可能如下所示: for (;;) { human h;

我得到了这个结构:

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

};
这一部分在main()中:

使用
t.push_back(?)
我想把文件中的东西放到向量结构中

 int ma;
 double su;
 string nev;
文件中的元素数未知。 所以最大的问题是如何使用
push_back()填充我的结构?
对不起,没有问题:)
内容如下:(in.txt)


您的循环可能如下所示:

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

    if ( !inf )
        break;

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

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

您需要从文件中读取行。这取决于每个
人类
在文件中的表示方式?是每人一行还是多行?您需要读取该行,转换为适当的类型(int,double),然后构造结构并将其推回向量。如果你能提供一个小的有代表性的输入文件,它将阐明需要什么。不要使用eof作为循环条件,你需要向我们展示文件中的内容是什么样子的。
 int ma;
 double su;
 string nev;
123
34.34
Dani
180
70.1
Victor
190
90
julika
200
45
rozika
for (;;)
{
    human h;
    inf >> h.ma;
    inf >> h.su;
    inf >> h.nev;

    if ( !inf )
        break;

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