web-dev-qa-db-ja.com

1行に複数の入力

私は役に立たないように見えました、そして、誰もそれを尋ねることを敢えてしないような単純な質問かもしれないと思います。

1つの行に標準入力から複数のものを入力できますか?私はこれを意味します:

float a, b;
char c;

// It is safe to assume a, b, c will be in float, float, char form?
cin >> a >> b >> c;
24
Joshua

はい、記述したとおりの構文を使用して、cinから複数の項目を入力できます。結果は基本的に次と同じです。

_cin >> a;
cin >> b;
cin >> c;
_

これは、「演算子チェーン」と呼ばれる手法によるものです。

operator>>(istream&, T)Tは任意の型)への各呼び出しは、その最初の引数への参照を返します。したがって、_cin >> a_はcinを返し、_(cin>>a)>>b_などとして使用できます。

operator>>(istream&, T)を呼び出すたびに最初にすべての空白文字が消費され、次に入力操作を満たすために必要な数の文字が、最初の次の空白文字、無効な文字、またはEOFまで含まれます。

26
Robᵩ

はい、できます。

cplusplus.com から:

これらの関数は演算子オーバーロード関数であるため、通常の呼び出し方法は次のとおりです。

   strm >> variable;

ここで、strmはistreamオブジェクトの識別子であり、variableは正しいパラメーターとしてサポートされる任意のタイプのオブジェクトです。一連の抽出操作を次のように呼び出すこともできます。

   strm >> variable1 >> variable2 >> variable3; //...

これは、同じオブジェクトstrmから連続した抽出を実行するのと同じです。

strmcinに置き換えるだけです。

6
Jeremy