![](/img/trans.png)
[英]trouble outputting lines from .txt file using while loop, every word of txt file begins on new line
[英]Trouble outputting vector to .txt file
我已經為此苦苦掙扎了一段時間,終於可以尋求幫助了。 我正在通過readData函數從文本文件中讀取數據。 在該函數中,我正在調用ELement類的函數以將Element數據讀入向量的向量。 然后,我試圖通過writeData函數將數據寫入文本文件,這就是我的問題所在。 當我編譯並運行時,輸出文件包含除元素數據之外我正在寫入的所有其他數據。 我還需要能夠通過其他功能訪問此Element數據。
任何幫助,技巧或見解將不勝感激。 我在下面包括了我相信的相關代碼。 如果有必要,請告訴我。
謝謝!
readData函數:
void readData::readdata(ifstream &inp)
{
Element r;
r.addelementdata(inp);
};
addelementdata功能:
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);
};
readData類別:
class readData
{
public:
readData();
~readData(){};
void readdata(ifstream &inp);
void writedata(ofstream &out);
};
writeData函數:
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
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.