3

Google で検索用語 ">>" が受け入れられないために何も見つからないので、ここで質問することにしました。

まず、いいえ、ビットごとのシフト演算子を意味するのではありません。これは違います。一部のコードで発生するのを見たことがありますが、シフト演算子の場合は意味がありません。

cout << a;例になります。が出力されることは知っていますが、「<<」の定義は何ですか?

または、私の場合、次のようなコードがあります。

for(int index=0;index<n;index++)
    inputFile >> StringArray[index];

どういう意味ですか?

4

4 に答える 4

1

それらは、通常「ストリーム演算子」と呼ばれるオーバーロードされたビット単位のシフト演算子です。詳しくはわかりませんが、あなたが言ったように、

cout<<a;

a の値を出力します。つまり、a の値を出力ストリームに入れ、画面に表示します。

そして、の場合

inputfile>>variable; 

ファイルから変数にデータを読み込んでいます。

于 2013-11-06T14:15:28.573 に答える
1

あなたが言ったように、これらはビット演算子と呼ばれます。

ただし、C++ では、これらの演算子 (実際には任意の演算子) をオーバーロードして、必要な操作を行うことができます。これがここで起こっていることです。<<and>>ostreamandオブジェクトでオーバーロードされ、それぞれストリームへのistream出力とストリームからの読み取りを行います。

実際、任意の演算子をオーバーロードして、オブジェクトに対して必要なことを行うことができます。例はここにあります。

乾杯。

PS: これらの演算子に関する概念は簡単に視覚化できます。あなたが書くとき:

cout << "Hello world";

少し想像力を働かせれば、右側の文字列を左側のcoutストリームに「配置」したと言えます (したがって、左側は「矢印」に向いています)。同じように、次のように記述します。

std::string str;
cin >> str;

cin左側のストリームから文字列を抽出し、それを右側の変数に「配置」することを想像できますstr(したがって、右側は「矢印」を指します)。

于 2013-11-06T14:18:22.327 に答える