C ++无限循环,返回

时间:2015-11-19 13:33:59

标签: c++ loops vector infinite

void phonebookmenu() {
    phonebook ph;

    string str;

    cin.ignore();
    cout << "PH> ";
    getline(cin, str); //Input from user.

    string buf; // Have a buffer string.
    stringstream ss(str); // Insert the string into a stream.
    vector<string> tokens; // Create vector to hold the words.

    while (ss >> buf){
        tokens.push_back(buf); //Adds all the words inside the vector.
    }

    while (true){
    if (tokens[0] == "add"){
            ph.add(tokens[1],tokens[2]);
    }
    else if(tokens[0] == "lookup"){
            ph.lookup(tokens[1]);
    }
    else if(tokens[0] == "change"){
            ph.change(tokens[1],tokens[2]);
    }
    else if(tokens[0] == "alias"){
            ph.alias(tokens[1],tokens[2]);
    }
    else if(tokens[0] == "quit"){

            //Return to the "Main-menu"
    }

    else{
        cout << "Invalid input" << endl;
    }
}

所以我从主菜单&#34;中调用此菜单。但在我输入类似&#34;添加彼得123&#34;它的功能然后返回到&#34;主菜单&#34;这是我不想要的。它应该回到

cout << "PH> ";  

所以我可以继续做手术。

1 个答案:

答案 0 :(得分:0)

循环不在cout/input/determine/do something逻辑附近。它只在determine/do something附近。将while移至cout之前,看看会发生什么。 请务必将答案标记为最有帮助的答案。