【发布时间】:2016-03-28 05:00:04
【问题描述】:
我的程序以 char 形式获取输入。然后检查输入是否有效
-如果输入不是'a'或'b'或'c',则清除整个输入的输入然后再次输入(并且任何超过一个字符的输入都是无效的,即使开始或包含a或b或c字符)
示例:ab、ac、cb、abc 无效。 xa, habc 无效
所以我的问题是:例如:如果我输入 abcdef 或 123456(在此示例中输入有 6 个字符)循环转 6 次并打印“错误!无效值。再试一次”6 次。但对于任何长度超过 1 个字符的输入,它必须仅打印一次“错误!无效值。再试一次”。我认为它首先检查输入是否有效,然后是 b、c、d、e 和 f,分别。所以如果输入无效,它应该清除整个输入,然后再次输入。如果输入无效,如何清除整个输入。这是我的代码
for(bool isTypeValid=false; isTypeValid==false;){
cout<<"type: ";
cin>>type;
switch(type){
case 'a':
case 'b':
case 'c':
isTypeValid=true;
break;
default:
isTypeValid=false;
cout<<"Error! Invalid type. Try again.";
break;}
}
int number:
cout<<"number: ";
cin>>number;
.............
编辑:我只需要使用 iostream 标头
【问题讨论】: