我有一些代码要求用户输入字母数字字符,如果他们输入其他字符(例如@,#,$),它将再次要求输入字母数字字符。 出于某种原因,我需要在它接受之前输入两次非字母数字字符。这是代码。
#include <iostream>
#include <cctype>
using namespace std;
void get_option(char& input, string msg) {
string clear_input;
bool isletter;
bool isnumber;
bool test = 0;
while (test == 0) {
cout << msg;
cin >> input;
isletter = isalpha(input);
isnumber = isdigit(input);
if (isletter == 0 && isnumber == 0) {
cin.clear();
cin >> clear_input;
cout << input << endl << isnumber << endl << isletter << endl;
test = 0;
}
else if (isletter == 1 || isnumber == 1) {
test = 1;
}
}
}
int main() {
char input;
string msg = "Please enter an alphanumeric char: ";
get_option(input, msg);
return 0;
}
答案 0 :(得分:1)
这是因为cin >> clear_input;
行,我认为没有任何目的。删除该行(以及clear_input
的声明)。