ストラウストラップのプログラミング入門(8) 第4章ドリル(続々)
『ストラウストラップのプログラミング入門』を読む。4章ドリルの続き。8が分からない。
ドリル8
単位のない値、または単位の表記が「無効」である値(y、yard、meter、km、gallonsなど)を拒否する。
前者=「単位のない値」を入力できなくて困ってる。
while文の継続条件を次のようにすると、単位のない数字のみの入力ができない。
// xはdouble値、unitは単位を表すstring while(cin >> x >> unit)
…話のレベルが低すぎて伝わらない気がする。「単位を入力せずに、数値のみを入力して、入力の受け取りを終了する方法」が分からないという意味です。
数値つき単位として1つのstringを読み込み、数値とそれ以外に分割すればいいのかな。
それとも、cinの使い方の問題? でも、たとえば次のようにしても、問題は変わらない。
// xはdouble値、unitは単位を表すstring while(cin >> x){ // 1回目の入力エラー処理 cin >> unit; // 2回目の入力エラー処理
何かプリミティブなことで悩んでるなぁ。