gpt4 book ai didi

c++ - 试图找出为什么我的代码保持无限循环

转载 作者:行者123 更新时间:2023-12-02 10:07:41 25 4
gpt4 key购买 nike

我对编程非常陌生,请原谅我缺乏的知识。我正在尝试创建一个简单的菜单,在其中我将通过按1,2,3等来执行一些问题,但是我的代码不断重复循环,我不明白为什么。

int main()
{
int choice;
do
{
cout << "\t|--------------------------- Menu ---------------------------|" << endl;
cout << "1.|- Добавяне на телефонни номера -|" << endl;
cout << "2.|- Извеждане на всички телефонни абонати на екрана -|" << endl;
cout << "3.|- Месечно потребление -|" << endl;
cout << "4.|- Изчисление на месечна такса -|" << endl;
cout << "5.|- Справки за абонатите с под меню -|" << endl;
cout << "6.|- Край на програмата -|" << endl;

switch(choice)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
cout << "|- Благодаря ви -|" << endl;
return 0;
}

}
while(choice != 6);
}

最佳答案

您需要在代码中使用cin,才能在每次循环时更改choice的含义。处理无效的用户输入也是一个好主意。这由(!(cin >> choice))完成,直到输入将返回true为止。在这种情况下,您想cin.clear()cin.ignore()重置流的状态,以便您可以继续向用户询问正确的输入。

#include<iostream>
using namespace std;

int main()
{
// it is a good idea to initialize the variable when you create it
int choice = 0;
do
{
cout << "\t|--------------------------- Menu ---------------------------|" << endl;
cout << "1.|- Добавяне на телефонни номера -|" << endl;
cout << "2.|- Извеждане на всички телефонни абонати на екрана -|" << endl;
cout << "3.|- Месечно потребление -|" << endl;
cout << "4.|- Изчисление на месечна такса -|" << endl;
cout << "5.|- Справки за абонатите с под меню -|" << endl;
cout << "6.|- Край на програмата -|" << endl;


// this loop will handle incorrect inputs from the user
// for example entering a char, when the stream is expecting an int
while (!(cin >> choice))
{
cin.clear();
cin.ignore();
cout << "Please enter a valid choice: ";
cin >> choice;
}

switch (choice)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
cout << "|- Благодаря ви -|" << endl;
return 0;
}

} while (choice != 6);
}

关于c++ - 试图找出为什么我的代码保持无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59361693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com