【发布时间】:2016-06-26 14:46:01
【问题描述】:
我正在制作一个简单的程序,用户需要输入几个可能的字符。我希望可能的输入只有 i、c、l、v、h、k、f、s、x。我确实意识到我可以这样做:
char a;
bool s(false);
cin>>a;
do
{
switch(a)
case 'i': ...
case 'c': ...
...
default: cout<<"Invalid input! Try again: "; cin>>a; s=true;
} while(s);
但是,我很确定有一个更优雅的解决方案。我猜会涉及枚举。谁能告诉我,因为我找不到任何关于这个主题的东西。
【问题讨论】:
-
我是否理解正确,您不喜欢错误的字符也在屏幕上回显,这就是您打印“无效输入”的原因?如果用户输入不会被回显并且您需要自己回显它,但只有输入了一个接受的字符,它会解决您的问题吗?
-
如果用户只输入一个字符,那么 switch 语句确实是最好的解决方案。我想你可以有很长的'if'语句,例如if (a == 'i' || a == 'c' || etc...) 但这似乎更混乱 IMO。
标签: c++ input enums switch-statement