2
私はユーザーがいくつかの可能な文字を入力する必要がある簡単なプログラムを作っています。可能な入力は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
ユーザーが1文字だけを入力している場合は、switch文が実際にはこれに対する最良の解決策です。私はあなたが長い "if"文を持つことができると思います。 if(a == 'i' || a == 'c' || etc ...)しかし、それはちょっと難しいIMOのようです。 – Fibbles