ユーザーに入力を数回入力するように求め、その入力をさまざまな char 変数に格納してから、それらの変数に対して処理を行うプログラムがあります。
私の問題は、入力を一度に 1 つの変数に対して機能するように制限したいということです。例えば:
char a = 'a', b = 'b', c = 'c';
cout << "Enter a ";
cin >> a;
cout << "\nEnter b ";
cin >> b;
cout << "\nEnter c ";
cin >> c;
cout << "Entered chars were " << a << ", " << b << ", " << c;
これを実行し、ユーザーが tyu (文字間のスペースを含む) と入力すると、プログラムは t を変数 a に、y を変数 b に、u を変数 c に入力します。本質的に、それは一種の「フォールスルー」であり、ユーザーにそれぞれの値を実行するように求めるのではなく、自動的に cin の値を設定します。
私が望むのは、ユーザーが変数 a に入力したものが1文字のみであることを確認することです。
cin.good() を使用してみましたが、cin >> a; に複数の文字を入力すると 0 が返されます。cin.get(a); も使用してみました。次に、cin.good() をチェックします。ユーザーが複数の文字を入力した場合も、これは 0 を返します。
入力を一度に 1 つの cin 操作だけに制限する方法はありますか?