-4

istream::getとの使用の違いは何ですかoperator>>(istream&, char&):

char ch;    
cin.get(ch);
cin>>ch;

ブロック 2が有効であるのに、ブロック 1が無効である考えられる理由を説明できますか

cin.get().get();//Error **block 1**
char ch;
cin.get(ch).get(ch);//Doesn't gives an error  **block 2**

私の推測は次のとおりです。

cin>> >>;ブロック 1 はwhile ブロック 2と同等ですcin>>ch>>ch;

4

2 に答える 2

2

istream::get(char c)を返しますがistream&、他の引数のないバージョンは int を返します。

したがって、2 番目のバージョンでは、完全に正当な を呼び出し.get(ch)ますが、最初のバージョンでは、正当ではないistream&int のメソッド get を呼び出そうとします。

于 2013-03-15T15:15:26.203 に答える
1

>>は抽出演算子として知られており、たとえば、入力を変数に格納する場合に使用できます。詳しくはこちらのリンクをご覧ください。

を使用する場合、クラスオブジェクトのメソッドにアクセスしたいという意味です。

あなたの最初のブロックは間違っています.cin.get()はint型を返しますが、これにはget()メソッドが関連付けられていません. cin,get(ch) はistream&型の値を返します。

于 2013-03-15T15:15:57.763 に答える