C++ 试图找出为什么我的代码保持无限循环
我对编程很陌生,请原谅我知识的缺乏。我试图创建一个简单的菜单,在其中我将通过按1、2、3等来执行一些问题。但是我的代码不断循环,我不明白为什么C++ 试图找出为什么我的代码保持无限循环,c++,C++,我对编程很陌生,请原谅我知识的缺乏。我试图创建一个简单的菜单,在其中我将通过按1、2、3等来执行一些问题。但是我的代码不断循环,我不明白为什么 int main() { int choice; do { cout << "\t|--------------------------- Menu ---------------------------|" << endl; cout << "1.|- Доба
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);
}
intmain()
{
智力选择;
做
{
cout您需要在代码中使用cin
,以便在每次循环时更改选项
。处理无效的用户输入也是一个好主意。这是通过(!(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);
}
#包括
使用名称空间std;
int main()
{
//最好在创建变量时初始化它
int-choice=0;
做
{
难道你不能初始化或输入一些东西到choice
中吗?使用std::cin
给choice
一个值。choice
在你的代码中有不确定的值。你需要阅读输入:cin>>choice;switch(choice){…
调试器中程序员的秘密武器。使用它来逐步检查有问题的代码,并准确地查看程序在做什么。轻微改进(减少重复):删除cin>>选项;
s并将while(cin.fail())
替换为while(!(cin>>选项))
。执行读取,然后立即进行测试。我同意这是一种更好的方法。