Я только изучаю C ++ (1 неделя опыта) и пытаюсь написать цикл проверки ввода, в котором пользователю предлагается ввести «Да» или «Нет».Я понял это, но у меня есть чувство, что есть лучший способ приблизиться к этому.Вот что я придумал:
{
char temp[5]; // to store the input in a string
int test; // to be tested in the while loop
cout << "Yes or No\n";
cin.getline(temp, 5);
if (!(strcmp(temp, "Yes")) || !(strcmp(temp, "No"))) // checks the string if says Yes or No
cout << "Acceptable input"; // displays if string is indeed Yes or No
else //if not, intiate input validation loop
{
test = 0;
while (test == 0) // loop
{
cout << "Invalid, try again.\n";
cin.getline(temp, 5); // attempts to get Yes or No again
if (!(strcmp(temp, "Yes")) || !(strcmp(temp, "No"))) // checks the string if says Yes or No
test = 1; // changes test to 1 so that the loop is canceled
else test = 0; // keeps test at 0 so that the loop iterates and ask for a valid input again
}
cout << "Acceptable input";
}
cin.ignore();
cin.get();
return 0;
}
Я прошу прощения за свои плохие заметки, не уверен, что имеет отношение.Я также использую заголовок cstring.