试图找出为什么我的代码保持无限循环
Trying to find out why my code keeps infinite looping
我对编程很陌生,所以请原谅我缺乏知识。我正在尝试创建一个简单的菜单,我将在其中通过按 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++代码崩溃并具有无限循环
- 为什么我的代码在 c++ 中无限循环.我的代码需要反复提示用户
- 从二进制文件加载列表后,我的代码似乎进入了无限循环
- QuickSort中使用的Hoare分区代码(Ref Cormen Book)陷入无限循环
- 为什么我的埃拉托色尼代码筛子无限循环.我已经用几个数字进行了测试
- 为什么这段代码陷入无限循环?
- 这段代码处于无限循环中,想知道如何解决它
- 在给定长度无限循环的情况下,在Collatz猜想中查找起始数的代码
- 为什么下面的代码进入无限循环
- 如何在 c++ 中从".in"格式的文件中获取输入?此代码进入无限循环,但适用于".txt"文件格式
- 输入验证,需要数字,而不是字符串.代码导致无限循环
- 为什么这段代码最终会进入一个无限循环,读取std::cin
- 代码无限循环不能只打印一次
- 这段代码可能会陷入无限循环吗?
- 为什么此代码不显示计算的正确答案,为什么它会无限循环?
- 为什么我的 c++ 代码会进入无限循环
- 为什么字符串中的空格使我的代码无限循环
- 代码无限循环,我不知道为什么C++