私は非常にtrivalオプション処理関数を持っており、私はこの関数を頻繁に入力する必要があります。だから私はベクトルを割り当てることができません。私はベクトルに要素を追加して保存できるようにする必要があるので、この関数に戻ってもそれはまだその要素です。funcからfuncへのベクトル情報を保持
vector<sStruct> * loadFile(char *myTextFile)
{
myStruct
sStruct;
vector<myStruct>
vectorAddress,
vectorData;
vectorData = &vectorAddress;
string
feild1, feild2, feild3, feild4;
ifstream
*inFile = new ifstream;
inFile->open(myTextFile, ios::in);
if (!inFile->good())
{
cout << "? File Doesnt Exist! " << endl;
}
while (!inFile->eof())
{
// reading a file deliimted by commas hi,hello,hey,1234
//...
getline(*inFile, feild1, ',');
sStruct.m_1 = field1;
getline(*inFile, feild2, ',');
sStruct.m_2 = field2;
getline(*inFile, field3, ',');
sStruct.m_3; = feild3
getline(*inFile, feild4);
sStruct.m_4 = feield4;
// saving each member of the struct in the vector
vectorAddress.push_back(sStruct);
}
inFile->clear();
inFile->close();
cout << vectorAddress.size() << endl;
delete inFile;
//
(*vectorData) = vectorAddress;
return vectorData;
}
// This function tries despretly to add another element saved in struct member varaible
// to the end of the vector. I need the information from the first function to be here. What i think im trying to do is refer to the same address in memory.
vector<sStruct> * addElement(vector<sStruct> *vAddElement)
{
myStruct sAddElement; // referring to the same struct.
vector<sStruct> vectorAddress;
vAddElement = &vectorAddress;
cout << "Enter a String: ";
cin >> sAddElement.feild1 // save user spec in struct member
vectorAddress.push_back(sAddElement);
cout << vectorAddress.size() << endl;
(*vAddElement) = vectorAddress;
return vAddElement;
}
そして、私は関数の署名を変更せずにこれを実行しようとしています。
+1私はそれが尋ねられていたかどうかであるかどうかはかなり推測できませんでした。 –
戻り値の型にポインタを使用する必要があります。 – user40120
これを聞いて申し訳ありません。単純に "return&vAddElement;参照のアドレスは、その参照先のアドレスと等しいためです。 –