Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.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++ - Fatal编程技术网

C++ 我需要将文件中的数据读取到结构的向量中

C++ 我需要将文件中的数据读取到结构的向量中,c++,C++,我希望你们能提供帮助,因为标题说我需要将文件中的数据读取到结构向量中,但我需要使用readfile函数在不同的时间读取不同的结构。让我困惑的是for循环 for(temp; getline(infile, temp.whatever) && getline(infile, temp.whatever2); i++) structname.pushback(temp); 这将函数绑定到单个结构。写另一个函数在另一个结构中读取有点反作用。显然,这是可行的,但是有没有一种方法

我希望你们能提供帮助,因为标题说我需要将文件中的数据读取到结构向量中,但我需要使用readfile函数在不同的时间读取不同的结构。让我困惑的是for循环

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函数”。分配什么是“读取文件”?