I just started learning C++ so i’m sure there is something obvious about this that i’m missing. I would love it if somebody could enlighten me. thank you!
Im trying
Please change your Or conditions with And condition.
#include <iostream>
using namespace std;
int main()
{
char answer{' '};
std::cin>>answer;
while (answer != 'n' && answer != 'N' && answer != 'Y' && answer != 'y')
{
std::cout<<"Error: Please press 'Y' for yes and 'N' for no, followed by 'ENTER'. \n";
std::cin>>answer;
}
return 0;
}
I would had parenthesis:
do {
std::cin>>answer
} while ((std::toupper(answer) != 'N') && (std::toupper(answer) != 'Y'));
Operators have precedence and it may introduce subtle errors not to mention when using beta compiler.
Change the || to &&. If the char is not 'n' AND the char is not 'N' AND the char is not 'Y' AND the char is not 'y' THEN display the error.
Take the expression answer != 'n' || answer != 'N'
, if you think about it, since answer
can't be at the same time 'N'
and 'n'
this will always be true, answer
will allways be different from 'n'
or different from 'N'
. See what I mean?