Новое на C++, и у меня есть общий связанный список вопросов. Скажем, у меня есть:Общий связанный список C++
struct Node
{
string name;
Node *next
};
в файле заголовка и у меня есть функция
Node ReadIntoList(const string INPUT_FILE)
{
ifstream inFile;
Node *head;
head = NULL;
Node *perPtr;
perPtr = new Node;
inFile.open(INPUT_FILE);
while(inFile && perPtr!= NULL)
{
getline(inFile, perPtr->name);
perPtr -> next = head;
head = perPtr;
perPtr = new Node;
}
delete perPtr;
perPtr = NULL;
return *head;
}
Мой вопрос: что мне нужно сделать, чтобы вернуться из функции ReadIntoList к основному , так что я могу получить доступ к списку а затем можно настроить функцию для вывода ее в файл. Вот мой основной до сих пор ...
int main()
{
ofstream oFile;
string inputFile;
Node *head;
cout << left;
cout << "Please enter the name of the input file you would like to "
"use: ";
getline(cin, inputFile);
head = ReadIntoList(inputFile);
oFile.open("OFile.txt");
return 0;
}
Этот узел в основной не настроен правильно, очевидно, но я не уверен, как получить доступ к информации из ReadIntoList.
Если вы действительно используете C++, вы должны использовать 'std :: list' или' std :: forward_list' вместо управления узлами вручную. –
1. См. Ответ @RemyLebe выше. 2. Если по какой-либо причине (например, вы хотите реализовать свои собственные), вы можете просто вернуть 'head' в' ReadIntoList', и вы можете установить 'head' в свою основную часть из возвращаемого значения' ReadIntoList' –
ответьте на свой конкретный вопрос, общий для простого списка вы можете обращаться с указателем головы как с дескриптором списка. так что вы должны вернуться. Но вы не показываете, что вы возвращаете в вопросе (код отключен). Эти удаления perPtr вызовов выглядят очень странно. Используйте std :: list, как сказали другие – pm100