【发布时间】:2015-01-24 01:31:07
【问题描述】:
我在创建基本文本用户界面时遇到问题。为了保持文本界面循环,我调用 main() 直到用户选择按 0 退出。
但是,这会重新创建我的 LinkedList 列表,我希望将其永久保存。我知道将它作为全局变量是不好的做法,那么我该如何解决这个问题呢?
int main() {
int choice, newLatitude, newLongitude;
string newName;
LinkedList list;
cout << "[1] Add a city \n";
cout << "[2] Display list of cities \n";
cout << "[0] Exit program \n";
cin >> choice;
if (choice == 0) {
return 0;
}
else if (choice == 1) {
cout << "Enter city name: ";
cin >> newName;
cout << "Enter latitude: ";
cin >> newLatitude;
cout << "Enter longitude: ";
cin >> newLongitude;
City newCity(newName, newLatitude, newLongitude);
list.addNode(newCity);
}
else if (choice == 2) {
list.display();
}
else {
cout << "Invalid option, please try again \n";
}
main();
return 0;
}
【问题讨论】:
-
你不应该从 main() 调用 main()。如果您有要重新运行的代码,则应将其放入 main 内的循环中,或者将其设为一个单独的函数,您可以一直调用它,直到您的调用代码对结果满意为止。
-
永远不要调用 main()。 stackoverflow.com/a/2128727/487892
-
你不知道循环吗?