C++ C++;-循环主要重置对象

C++ C++;-循环主要重置对象,c++,object,main,C++,Object,Main,我有一个问题,我正在创建一个基本的文本用户界面。为了保持文本界面循环,我调用main(),直到用户选择按0退出 然而,这会重新创建我的LinkedList列表,我想将其作为永久性的保存。我知道把它作为一个全局变量是一种不好的做法,所以我怎样才能避开这个问题呢 int main() { int choice, newLatitude, newLongitude; string newName; LinkedList list; cout << "[

我有一个问题,我正在创建一个基本的文本用户界面。为了保持文本界面循环,我调用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;
}
intmain(){
int选项,新纬度,新经度;
字符串newName;
链接列表;
cout-newName;
cout>新纬度;
cout>新经度;
城市newCity(新名称、新纬度、新经度);
list.addNode(新城);
} 
else if(选项==2){
list.display();
}
否则{

cout使用递归来完成这项任务可能不是一个好主意。如果希望它重复,最好使用while循环

只要语句(true)为true,While(true)就会循环。也就是永远。您也可以执行类似于
While(choice!=0)
的操作,尽管这需要对代码稍加修改

int main() {

    int choice, newLatitude, newLongitude;
    string newName;

    LinkedList list;

    while(true)
    {
        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";
        }
    }
    return 0;
}
intmain(){
int选项,新纬度,新经度;
字符串newName;
链接列表;
while(true)
{
cout-newName;
cout>新纬度;
cout>新经度;
城市newCity(新名称、新纬度、新经度);
list.addNode(新城);
} 
else if(选项==2){
list.display();
}
否则{

您不应该从main()调用main()。如果您有要重新运行的代码,您应该将其放入main内的一个循环中,或者使其成为一个单独的函数,您可以一直调用它,直到调用代码对结果满意为止。永远不要调用main()。您不知道循环吗?