「ユーザー入力の読み取り」には、いくつかの異なるアプローチがあります。
どちらが最適かは、入力の形式/スタイルに少し依存します。"Linebased" と "free form" という 2 つの異なる形式を検討できます。自由形式は、C ソース コードのように入力され、改行、スペースなどを好きな場所に追加できます。
Linebased には一定の形式があり、各行には特定の入力セットが含まれます [入力の数は必ずしも同じではありませんが、行末で特定の入力が終了します]。
自由形式の入力では、文字を読み取ってから、「この特定の部分の意味は何か」を判断し、次に何をするかを決定する必要があります。peek()
関数を使用して次の文字が何であるかを確認し、それに基づいて何をすべきかを判断する必要がある場合もあります。
行ベースの入力では、 を使用getline()
してテキスト行を読み取り、それを必要な形式に分割します。たとえば、 を使用しstringstream
ます。
stream
次に、独自のコードを作成する (または基本的な標準変換コードを使用する) か、関数を使用して数値などを解析するかを決定する必要があります。stream
さらにコードを書くと、「1234aqj」は数字ではなく、その文字列の「a」に達すると読み取りを停止するなどのエラーを処理するためのより良い方法が得られます。