gpt4 book ai didi

c++ - 在c++中使用Enum,没有错误但不会输入

转载 作者:太空狗 更新时间:2023-10-29 21:41:01 24 4
gpt4 key购买 nike

我已经尝试为一个任务创建一个代码,让用户输入两个字符,程序将从列表中确定用户的意思。在我的例子中,我的列表是视频游戏机,所以 xb 是xbox,pl是playstation,等等。我已经走了很远,使用了我的书中和网上可用的东西,但是此时每当我运行我的代码时,它都会编译、运行并立即关闭。没有错误,也没有要求用户输入。有什么建议吗?

#include <iostream>
using namespace std;


enum gameconsoles { Xbox, Playstation, PSP, Super_Nintendo, NES, Sega, Gamecube, Nintendo64, Wii, Comodore64, Atari }; // Yes, I know some of this isn't proper.. Should be Atari 2600 and so on, I know my consoles. Just limited to 2 characters made my selection a little more narrow so I had to generalize.
gameconsoles listed;
gameconsoles readgameconsoles()
{
gameconsoles listed;
char char1, char2;

cout << "This program will determine a game console based off of" << endl;
cout << "the first two characters you input. The list is somewhat small, but" << endl;
cout << "demonstrates the operation of enumeration programming." << endl << endl;
cout << "Please input the first two characters of a game console: ";
cin >> char1 >> char2;
switch (char1)
{
case 'A':
case 'a':
listed = Atari;
break;
case 'C':
case 'c':
listed = Comodore64;
break;
case 'G':
case 'g':
listed = Gamecube;
break;
case'N':
case'n':
if (char2 == 'E' || char2 == 'e')
listed = NES;
else
listed = Nintendo64;
break;
case 'P':
case 'p':
if (char2 == 'L' || char2 == 'l')
listed = Playstation;
else
listed = PSP;
break;
case 'S':
case 's':
if (char2 == 'E' || char2 == 'e')
listed = Sega;
else
listed = Super_Nintendo;
break;
case 'W':
case 'w':
listed = Wii;
break;
case 'X':
case 'x':
listed = Xbox;
break;
default:
cout << "Illegal input. Try again" << endl;
}
return listed;
}

void printEnum(gameconsoles listed)
{
switch (listed)
{
case Atari:
cout << "The console you have specified is Atari";
break;
case Comodore64:
cout << "The console you have specified is the Comodore 64";
break;
case Gamecube:
cout << "The console you have specified is Gamecube";
break;
case NES:
cout << "The console you have specified is the NES" << endl;
cout << "or also known as the Nintendo Entertainment System";
break;
case Nintendo64:
cout << "The console you have specified is Nintendo 64";
break;
case Playstation:
cout << "The console you have specified is Playstation";
break;
case PSP:
cout << "The console you have specified is PSP" << endl;
cout << "or better known as the Playstation Portable";
break;
case Sega:
cout << "The console you have specified is Sega";
break;
case Super_Nintendo:
cout << "The console you have specified is Super Nintendo";
break;
case Wii:
cout << "The console you have specified is Wii";
break;
case Xbox:
cout << "The console you have specified is Xbox";
system("PAUSE");
}
}

最佳答案

你可以这样做:

 #include <iostream>
using namespace std;

enum gameconsoles
{
Xbox,
Playstation,
PSP,
Super_Nintendo,
NES,
Sega,
Gamecube,
Nintendo64,
Wii,
Comodore64,
Atari
};

gameconsoles listed;
gameconsoles readgameconsoles(char char1, char char2)
{

switch (char1)
{
case 'A':
case 'a':
listed = Atari;
break;
case 'C':
case 'c':
listed = Comodore64;
break;
case 'G':
case 'g':
listed = Gamecube;
break;
case'N':
case'n':
if (char2 == 'E' || char2 == 'e')
listed = NES;
else
listed = Nintendo64;
break;
case 'P':
case 'p':
if (char2 == 'L' || char2 == 'l')
listed = Playstation;
else
listed = PSP;
break;
case 'S':
case 's':
if (char2 == 'E' || char2 == 'e')
listed = Sega;
else
listed = Super_Nintendo;
break;
case 'W':
case 'w':
listed = Wii;
break;
case 'X':
case 'x':
listed = Xbox;
break;
default:
cout << "Illegal input. Try again" << endl;
}
return listed;
}

void printEnum(gameconsoles listed)
{
switch (listed)
{
case Atari:
cout << "The console you have specified is Atari";
break;
case Comodore64:
cout << "The console you have specified is the Comodore 64";
break;
case Gamecube:
cout << "The console you have specified is Gamecube";
break;
case NES:
cout << "The console you have specified is the NES" << endl;
cout << "or also known as the Nintendo Entertainment System";
break;
case Nintendo64:
cout << "The console you have specified is Nintendo 64";
break;
case Playstation:
cout << "The console you have specified is Playstation";
break;
case PSP:
cout << "The console you have specified is PSP" << endl;
cout << "or better known as the Playstation Portable";
break;
case Sega:
cout << "The console you have specified is Sega";
break;
case Super_Nintendo:
cout << "The console you have specified is Super Nintendo";
break;
case Wii:
cout << "The console you have specified is Wii";
break;
case Xbox:
cout << "The console you have specified is Xbox";
system("PAUSE");
}
}
void main()
{
char char1, char2;

cout << "This program will determine a game console based off of" << endl;
cout << "the first two characters you input. The list is somewhat small, but" << endl;
cout << "demonstrates the operation of enumeration programming." << endl << endl;
cout << "Please input the first two characters of a game console: ";
cin >> char1 >> char2;
readgameconsoles(char1, char2);
printEnum(listed);
system("pause");
return;
}

我试过了,它对我有用。

关于c++ - 在c++中使用Enum,没有错误但不会输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29899696/

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