我一直在尝试使用switch语句来访问程序中的不同函数,当我编译代码时,它会一直显示默认选项,无论我输入什么。我错过了一些非常明显的东西吗?
所有功能(所有空隙)都在类中声明。这可能是因为我在这个下面实现了其他“菜单”功能吗?
void bookshop::menu_searchtype() {
std::cout << "Welcome to Hal's Book Emporium!\n\n";
std::cout << "You can search for a book by its:\n";
std::cout << "1. Identification number\n";
std::cout << "2. Title\n";
std::cout << "3. Author\n\n";
std::cout << "Which would you like to use?\n\n";
std::cin >> choice_menu;
int menu_searchtype_no;
switch (menu_searchtype_no) {
case '1':
menu_id();
break;
case '2':
menu_title();
break;
case '3':
menu_author();
break;
default:
std::cout << "We seemed to have run into a problem. Please try again\n\n";
break;
}
}
答案 0 :(得分:3)
答案 1 :(得分:1)
您从未设置menu_searchtype_no
,因此它具有未指定的值。在非常罕见的情况下,这可能会“平等”'1'
,'2'
或'3'
(分别为49
,50
或51
'使用ASCII),但更有可能是一些随机看起来较高的值会触发default
的情况。
我猜你打算写:
switch (choice_menu) {
和
case 1:
等