我有这个结构:
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
答案 0 :(得分:0)
您的循环可能如下所示:
for (;;)
{
human h;
inf >> h.ma;
inf >> h.su;
inf >> h.nev;
if ( !inf )
break;
t.push_back( std::move(h) );
}
显然,阅读文件的细节取决于您没有指定的文件格式。永远不要在循环条件下使用eof()
,实际上您要测试的是您是否成功读取了您尝试读取的数据。不是在某个时候是否存在文件结尾。