То, что вы имеете в виду, это while (chooseMove == 'r' or chooseMove == 'h')
. То, что вы сейчас написали, эквивалентно ((chooseMove == 'r') or ('h'))
, а 'h'
оценивается как true
.
Возможно, вы также просили помощи с логикой ввода:
char c;
bool success = false;
while (std::in >> c)
{
switch(c) {
case 'r': /* ... */ success = true; break;
case 'h': /* ... */ success = true; break;
}
if (success) break;
}
Это также прекратится, если входной поток закрыт, и вы можете использовать success
для проверки успешности операции.