c++:处理输入
C++ : Handling input
char d;
do
{
cout<<"1.Easyn";
cout<<"2.Mediumn";
cout<<"3.Hardn";
cout<<"Choose your difficulty:";
cin>>d;
if (d=='1')
{
//function call
break;
}
else
if (d=='2')
{
//function call
break;
}
else
if (d=='3')
{
//function call
break;
}
else
cout<<"Invalid Input!n";
}while (d=='1' || d=='2' || d=='3') ;
以上代码一直运行,直到d
的值为1、2或3。
但是,当我输入一个字母,如"e"
,它不显示"invalid input"
消息。相反,将退出循环并显示空白屏幕。有人知道为什么会这样吗?
仅当d == '1', '2'或'3'时才进行循环。您需要检查以确保它不是这些字符之一。这可以通过对代码进行以下调整来实现:
char d;
do
{
..........
}while ( ! (d=='1' || d=='2' || d=='3') ) ;
希望这对你有帮助。
如果在每个有效情况下都有break
,则不需要检查while
条件下d
的值:
while (true) {
cout << "1.Easyn";
cout << "2.Mediumn";
cout << "3.Hardn";
cout << "Choose your difficulty:";
cin >> d;
if (d == '1') {
a.setdifficulty("Easy");
break;
}
else if (d == '2') {
a.setdifficulty("Medium");
break;
}
else if (d == '3') {
a.setdifficulty("Hard");
break;
}
else
cout << "Invalid Input!n";
}
当d的值为'1'或'2'或'3'时,循环执行。要执行循环,直到它接受有效的输入,只需更改条件,如下代码
char d;
do
{
cout<<"1.Easyn";
cout<<"2.Mediumn";
cout<<"3.Hardn";
cout<<"Choose your difficulty:";
cin>>d;
if (d=='1')
{
a.setdifficulty("Easy");
break;
}
else
if (d=='2')
{
a.setdifficulty("Medium");
break;
}
else
if (d=='3')
{
a.setdifficulty("Hard");
break;
}
else
cout<<"Invalid Input!n";
}while (d!='1' && d!='2' && d!='3') ;
这是您需要的代码......您的代码将始终执行一次.....对于输入1、2、3,跳出look,在无效输出的情况下,while循环中的条件不匹配.....
do
{
cout<<"1.Easyn";
cout<<"2.Mediumn";
cout<<"3.Hardn";
cout<<"Choose your difficulty:";
cin>>d;
if (d=='1')
{
cout<<"Easy";
break;
}
else
if (d=='2')
{
cout<<"DIFF";
break;
}
else
if (d=='3')
{
cout<<"Hard";
break;
}
else
cout<<"Invalid Input!n";
}while (d!='1' || d!='2' || d!='3') ;
相关文章:
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 如何处理包含空格的 cin 的用户输入?
- C++ 如何处理所有可能的玩家移动输入?
- 该程序允许用户处理循环,只要用户输入奇数
- 全新C++.处理用户输入
- 我如何处理有关输入的字符串大小超过字符数组设置大小的错误?
- 重定向输入和输出时如何处理主文件I/O?
- 有没有办法在使用 GLFW 按下按键后只处理一个输入事件?
- 输入处理程序函数中的分段错误
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- 为什么我的代码无法处理大型数组输入(>10000)?
- 处理输入流运算符>>中的无效输入
- 异常处理:如果用户输入不是三个特定字符之一
- 我正在努力处理多维数组输入和输出,我管理输入,但是打印无法按计划工作
- SDL C++鼠标输入处理切换效果
- C++ GLFW3 输入处理
- 组件实体系统-输入处理
- 带有WM_CHAR输入处理文本框中的GobbledyGook
- GLFW 输入处理未按预期工作
- c++简单的输入处理(由空格分隔的两个字符数组)