我正在尝试弄清楚如果用户输入的字符数超过1个,如何防止代码继续执行。我尝试浏览各个论坛,但找不到所需的正确答案。
基本上,我正在尝试验证用户是否输入了多个字符,并提示他们再次输入。
用户输入也将被打印出来,并且由于某种原因它会打印为数字。这是我当前代码的示例:
//gets student's last initial. Checks if the input is a 1 letter character
//has a response if it is not
bool lastEntry = false;
while (lastEntry != true){
cout << "Please enter the initial of your last name: " << endl;
cin >> lastInitial;
if (isalpha(lastInitial)) {
cout << "Last initial has been logged." << endl;
lastEntry = true;
}
else {
cout << "That is an invalid choice. Please enter a letter: " << endl;
cin >> lastInitial;
}//end if
}//end while loop
//prints summary of student's input and displays output
cout << "Your name initials are: " << toupper(firstInitial) << toupper(lastInitial) << endl;
cout << "Once swapped, your name initials will be: " << toupper(lastInitial) << toupper(firstInitial) << endl;
}//end Choice A option
当我测试它时,数字验证有效,但是当我输入多个字符时,它将完成我的代码。它显示了以下内容:
注意: 在我的代码开头将firstInitial和lastInitial声明为:
char firstInitial;
char lastInitial;
我目前拥有#include iostream和#include ctype.h,并且使用//使用命名空间std; //来删除代码中std ::的用法。如果明确要求,我深表歉意。并给我发送答案的链接!如果我的代码可能更有效,请也告诉我!谢谢。