改善したい入力クラスからこのコードブロックがあります。現時点では問題なく動作しています。
このように使用します...ストリームへの参照、ユーザー入力への参照、および入力が必要な最大範囲をマークするためのintを渡します。usrinput が参照されるので、それを他の場所で使用できます。true false を返すので、このように使用できます..入力を取得します...
while (!(validate(cin, returnval, a))){
//# Error Code code here
}
基本的にすべてが機能します.. intとして期待される数値を入力するようにユーザーに求めます.
if (cin >> int) の使用 - ユーザーが int を入力したかどうかに基づいて true false を取得します。(つまり、任意の文字列または何か... エラー) > と < を使用して、int が正しい範囲にあることを確認します。そうしないと、エラーになります。peek を使用してストリームをチェックし、\n.. 見つからない場合.. エラーになります。(したがって、2.2 または 2:3 4@3 などはエラーになります)
これですべて機能しています。実際、私はつい最近、もう 1 つエラー チェックが必要であることに気付きました。私はそれを行う方法がわかりませんが。
基本的に、最初に値を入力せずにEnterキーを押すと、cinは新しい行に移動します. ユーザーがEnterキーを押しただけであることを検出して、正しいエラーメッセージを返し、メニュー画面やその他のやりたいことをすべて再描画する方法はありますか?
サマー
他の値を入力せずにEnterキーが押されたかどうかを確認する関数をこれに追加するにはどうすればよいですか?
助けてくれてありがとう -- ジンクス
編集 - - -
私は自分の質問に答えることができません..しかし、これが答えです...
私は非常に近かった..しかし、答えはすでに私のコードにありました....つまり、cin.peek()はストリームを見ており、変数に読み込まれた後に呼び出しています。これは、「2番目」の文字が表示されていることと、テストが機能する理由を意味します...新しいテストb4を作成するだけで、cinが読み取られ、最初の文字がチェックされました..