在c++中使用Enum,没有错误但不会输入
Using Enum in c++, no errors but won't input
我试过为一个任务创建一个代码,让用户输入两个字符,程序将从列表中确定用户的意思。在我的例子中,我的列表是视频游戏机,所以xb 是 xbox,pl 是 playstation,等等。我已经走了很远,使用了我的书中和网上可用的东西,但是此时每当我 运行 我的代码时,它都会编译,运行s,并立即关闭。没有错误,也没有要求用户输入。有什么建议吗?
#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");
}
}
把main
放在你代码的末尾,然后调用相关的函数:
int main()
{
readgameconsoles();
return 0;
}
你可以这样做:
#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;
}
我试过了,对我有用。
这不是enum的问题,而是开发环境或者main函数的问题
你应该
1) 制作并 运行 这个文件:
#include <iostream>
using namespace std;
int main(int argc, char** argv){
cout << "Please input the first two characters of a game console: ";
cin >> char1 >> char2;
cout << "you typed " << char1 << " and " << char2 << endl;
}
2)如果没有看到行 "Please input the first two characters of a game console:",那就很奇怪了。通过描述您的环境来询问它。如果看到一个,请键入两个字符,按回车键,然后转到步骤 (3):
3) 如果你看到 "you typed ... "行,说明没问题,你可以继续研究enum-s。否则转到步骤 (4)
4) 如果没有,
- 询问配置你的开发环境
- 或使用其中之一
PressAnyKey 函数就像那些例子中的那样:http://www.cplusplus.com/forum/articles/7312/
我试过为一个任务创建一个代码,让用户输入两个字符,程序将从列表中确定用户的意思。在我的例子中,我的列表是视频游戏机,所以xb 是 xbox,pl 是 playstation,等等。我已经走了很远,使用了我的书中和网上可用的东西,但是此时每当我 运行 我的代码时,它都会编译,运行s,并立即关闭。没有错误,也没有要求用户输入。有什么建议吗?
#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");
}
}
把main
放在你代码的末尾,然后调用相关的函数:
int main()
{
readgameconsoles();
return 0;
}
你可以这样做:
#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;
}
我试过了,对我有用。
这不是enum的问题,而是开发环境或者main函数的问题
你应该
1) 制作并 运行 这个文件:
#include <iostream>
using namespace std;
int main(int argc, char** argv){
cout << "Please input the first two characters of a game console: ";
cin >> char1 >> char2;
cout << "you typed " << char1 << " and " << char2 << endl;
}
2)如果没有看到行 "Please input the first two characters of a game console:",那就很奇怪了。通过描述您的环境来询问它。如果看到一个,请键入两个字符,按回车键,然后转到步骤 (3):
3) 如果你看到 "you typed ... "行,说明没问题,你可以继续研究enum-s。否则转到步骤 (4)
4) 如果没有,
- 询问配置你的开发环境
- 或使用其中之一 PressAnyKey 函数就像那些例子中的那样:http://www.cplusplus.com/forum/articles/7312/