Я делаю простую программу, где пользователю нужно ввести несколько возможных символов. Я хочу, чтобы возможные входные данные были только i, c, l, v, h, k, f, s, x. Я понимаю, что могу сделать что-то вроде:Ограничение ввода пользователем
char a;
bool s(false);
cin>>a;
do
{
switch(a)
case 'i': ...
case 'c': ...
...
default: cout<<"Invalid input! Try again: "; cin>>a; s=true;
} while(s);
Однако, я уверен, что есть более благодатное решение. Я предполагаю, что перечисления будут задействованы. Кто-нибудь будет так любезны рассказать об этом мне, потому что я не мог найти абсолютно ничего на эту тему.
Правильно ли я понимаю, что вам не нравится, что неправильный символ также отображается на экране, и именно поэтому вы печатаете «Недопустимый ввод»? Если пользовательский ввод не будет эхом, и вам нужно будет эхо его самостоятельно, но только если введенный символ введен, решит ли он вашу проблему? – mvidelgauz
Если пользователь вводит только один символ, то оператор switch действительно является лучшим решением для этого. Я полагаю, вы могли бы иметь длинные «если» утверждения, например. if (a == 'i' || a == 'c' || и т. д.), но это кажется намного более беспорядочным ИМО. – Fibbles