gpt4 book ai didi

c++ - 无法将 vector 输出到 .txt 文件

转载 作者:太空宇宙 更新时间:2023-11-04 13:33:35 30 4
gpt4 key购买 nike

我已经为此苦苦挣扎了一段时间,我终于寻求帮助。我正在通过 readData 函数从文本文件中读取数据。在该函数中,我正在调用 ELement 类的函数以将元素数据读入 vector 的 vector 。然后我试图通过 writeData 函数将数据写入文本文件,这就是我的问题所在。当我编译并运行时,输出文件包含我正在写入的所有其他数据,元素数据除外。我还需要能够通过其他函数访问此元素数据。

如有任何帮助、提示或见解,我们将不胜感激。我在下面包含了我认为是相关的代码。如果需要更多信息,请告诉我。

谢谢!

读取数据函数:

void readData::readdata(ifstream &inp)
{

Element r;

r.addelementdata(inp);

};

添加元素数据函数:

void Element::addelementdata(istream& inp) 
{
int i,j,tmp;

for (i = 0; i < d_numElems; i++)
{
vector<int>row;
for (j = 0; j < 10; j++)
{
inp >> tmp;
row.push_back(tmp);

}
elems_matrix.push_back(row);
}

}

输出矩阵内容函数:

void Element::Elems_matrix_contents(ofstream& out)
{
int i, j;

for (i = 0; i < d_numElems; i++)
{
for (j = 0; j < 10; j++)
{
out << elems_matrix[i][j] << '\t';
}
}
}

元素类:

class Element: public readData
{
protected:
std::vector< std::vector<int> > elems_matrix;

public:
// Constructors
Element();

//Destructor
~Element(){};
// Functions
void addelementdata(istream&inp);

std::vector<std::vector < int >> elems_matrix_copy;

void Elems_matrix_contents(ofstream& out);

};

读取数据类:

class readData 
{
public:

readData();

~readData(){};

void readdata(ifstream &inp);
void writedata(ofstream &out);

};

写入数据函数:

void readData::writedata(ofstream &out)
{

out << "ELEMENT " << "Material " << "Nodes: "<< endl;

Element r;

r.Elems_matrix_contents(out);

out << "*******************************************************************" << endl << endl;
};

最佳答案

问题是您创建了一个 Element 类型的局部变量并将数据读入其中。因为它是本地的,所以它在函数结束时被销毁:

void readData::readdata(ifstream &inp)
{

Element r; // this will die at end of function

r.addelementdata(inp);

};

与您的 writedata() 函数相同。您创建一个全新的(空的)Element 并输出:

void readData::writedata(ofstream &out)
{

out << "ELEMENT " << "Material " << "Nodes: "<< endl;

Element r; // completely new contains nothing

r.Elems_matrix_contents(out);

out << "********************************************" << endl << endl;
};

也许你应该让 Element r 成为 readData 类的成员?

class readData
{
Element r; // now all functions can use the same Element

// ... blah blah blah
};

关于c++ - 无法将 vector 输出到 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30553180/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com