Я пытаюсь выяснить, как предотвратить продолжение моего кода, если пользователь ввел более 1 символа.Я пытался просматривать форумы, но я не мог найти правильные ответы, которые я искал.
В основном я пытаюсь проверить, если пользователь ввел более 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
Когда я проверяю его, числовая проверка работает, но когда я набираю более 1 символа для ввода, он заканчивает мой код.Вот что он показывает:
![enter image description here](https://i.stack.imgur.com/0O7m8.png)
Примечания: firstInitial и lastInitial объявлены в начале моего кода как:
char firstInitial;
char lastInitial;
В настоящее время у меня есть #include iostream и #include ctype.h, и я использую // using namespace std; //, чтобы убрать использование std :: в моем коде.Если об этом специально спросили, прошу прощения;и, пожалуйста, пришлите мне ссылку на ответ!Если мой код может быть более эффективным, пожалуйста, дайте мне знать об этом!Спасибо.