C++ 我需要将文件中的数据读取到结构的向量中
我希望你们能提供帮助,因为标题说我需要将文件中的数据读取到结构向量中,但我需要使用readfile函数在不同的时间读取不同的结构。让我困惑的是for循环C++ 我需要将文件中的数据读取到结构的向量中,c++,C++,我希望你们能提供帮助,因为标题说我需要将文件中的数据读取到结构向量中,但我需要使用readfile函数在不同的时间读取不同的结构。让我困惑的是for循环 for(temp; getline(infile, temp.whatever) && getline(infile, temp.whatever2); i++) structname.pushback(temp); 这将函数绑定到单个结构。写另一个函数在另一个结构中读取有点反作用。显然,这是可行的,但是有没有一种方法
for(temp; getline(infile, temp.whatever) && getline(infile, temp.whatever2); i++)
structname.pushback(temp);
这将函数绑定到单个结构。写另一个函数在另一个结构中读取有点反作用。显然,这是可行的,但是有没有一种方法可以使它更加可重用。提前感谢是的,您可以做一些事情使代码可用于不同的结构类型 但是,所有结构类型必须在函数中使用字段 它可能看起来像这样:
template<typename T>
void readData(vector<T>& v, istream& infile)
{
T temp;
while(getline(infile, temp.whatever) && getline(infile, temp.whatever2))
{
v.push_back(temp);
}
}
int main() {
// Add code for infileA and infileB
vector<myStructA> va;
readData(va, infileA); // or readData<myStructA>(va, infileA); if you prefer
vector<myStructB> vb;
readData(vb, infileB); // or readData<myStructB>(vb, infileB); if you prefer
....
....
return 0;
}
模板
无效读取数据(矢量和虚拟、istream和填充)
{
温度;
while(getline(infle,temp.whatever)和&getline(infle,temp.whatever2))
{
v、 推回(温度);
}
}
int main(){
//添加infileA和infieb的代码
向量va;
readData(va,infileA);//或readData(va,infileA);如果您愿意
向量vb;
readData(vb,infileB);//或readData(vb,infileB);如果您愿意
....
....
返回0;
}
因此这里的
myStructA
和myStructB
都必须有成员whatever
和whatever2
。这可以通过为myStructA
和myStructB
什么是temp
?它似乎没有一个类型。。。在哪里声明了i
?抱歉,temp是结构的临时名称,i在循环int i=0之前声明;请给我一个答案,你的问题有点不清楚。您是在询问两种不同的结构类型吗?像struct A{…}代码>和结构B{…}代码>“我需要使用readfile函数”。分配什么是“读取文件”?