【发布时间】:2015-12-19 19:49:48
【问题描述】:
使用c++;
我需要从用户那里获取输入,然后检查条件(见下文),如果其中一个条件为假,则再次要求用户输入(循环),仅使用 iostream 标头。
条件如下:
- 输入必须是字母(输入不能是数字、单词、符号)
- 输入必须是“h”或“p”或“u”字母(输入不能是其他字母和单词,如“ux”、“xu”、“uu”、“hup”)
我尝试了很多,但我失败了
#include <iostream>
using namespace std;
int main(){
char type;
cout<<"enter type: ";
cin>>type;
while(cin.fail()==1){
cout<<"error! invalid type. try again. \ntype:";
cin.clear();
cin.ignore();
cin>>type;
}
while(cin.fail()==0){
switch (type) {
case 'h':
case 'u':
case 'p':
break;
default:
cout<<"error!invalid type. try again.\ntype: ";
cin>>type;
}
}
cout<<"valid type";
return 0;
}
【问题讨论】:
-
你能粘贴一些你现在编码的代码吗?
-
您尝试了什么,又是如何失败的?
-
您应该发布您已经尝试过的代码、错误以及您期望发生的情况。你做的最后一个。作为提示,您可以尝试使用
cin >> c(c 是char)。如果你想逐个字符解析。或者您可以使用getline(cin, str)获取该人输入的整行并解析该字符串。 -
我尝试了很多不同的代码(使用 while、for 循环)。现在我发布了我尝试的最后一个
-
因此,如果其中一个条件为假,程序将要求用户提供另一个输入,然后程序必须再次检查新输入是否符合这两个条件之一?
标签: c++ loops input char iostream