2011-10-26 8 views
1

readMe.ingredientsは、オーバーロードされた>>演算子を持つIngredientオブジェクトの配列へのポインタです。 >>演算子の区切り文字は改行文字です。 ループ内でcin.ignoreを使用する方法

は食材のリストは次のようにフォーマットされているとします

  • 4ギャルチョコレートアイスクリーム
  • 3ギャルバタースコッチシロップ
  • 12パイントスライス バナナ

for (int count = 0; count < readMe.numIngredients; count++) 
    { 
     in >> readMe.ingredients[count]; 
     // the loop continues until you finish with all of the ingredients 
    } 
    in.ignore(10000,'\n'); 

これは、上記の成分リストを解析するためのコード例を示します。しかし、これはうまくいきませんin.ignore(10000,'\n')これが機能するためにはループを外側にする必要はありませんか?そうでない場合は、なぜそれが外にあるべきですか?

+0

これはC++であり、Cではなくタグが削除されています。 – MByD

答えて

0

私はそれを持っていると思います。成分リストの後ろに空白行があります

しかし、次の行に行くためにはまだループ内にin.ignore(10000,'\n')が残っていませんか?配列の各項目に4 gal chocolate ice creamを割り当て続けないでください。

+0

Qを削除することができます。 –

+1

はい、区切り文字は改行文字ですが、区切り文字は入力バッファから「読み込み」されます。それは関数が返すことを知っている方法です。したがって、書式付き入力関数を使って改行を明示的に読む必要はありません。 –

関連する問題