C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++のcerrストリームとclogストリームの違いは何ですか?


cerrとclogはどちらもstderrストリームのオブジェクトです。以下はそれらの違いです。 coutオブジェクトについて読んで、より鮮明な画像を取得することもできます。

バッファリングされていない標準エラーストリーム(cerr)

cerrは、エラーを出力するために使用される標準エラーストリームです。これは、
ostreamクラス。 cerrはバッファリングされていないため、エラーメッセージをすぐに表示する必要がある場合に使用されます。エラーメッセージを保存して後で表示するためのバッファはありません。

バッファリングされた標準エラーストリーム(クロッグ)

これもostreamクラスのインスタンスであり、エラーを表示するために使用されますが、cerrとは異なり、エラーは最初にバッファーに挿入され、完全にいっぱいになるまでバッファーに保存されます。

標準出力ストリーム(cout)

coutは、ostreamクラスのインスタンスです。 coutは、通常はディスプレイ画面である標準出力デバイスで出力を生成するために使用されます。画面に表示する必要のあるデータは、挿入演算子(<<)を使用して標準出力ストリーム(cout)に挿入されます。


  1. C ++のドット(。)演算子と->の違いは何ですか?

    ドットと矢印の演算子は、どちらもC++でクラスのメンバーにアクセスするために使用されます。それらはさまざまなシナリオで使用されます。 C ++では、class、struct、またはunionとして宣言された型は、「クラス型」と見なされます。したがって、以下は3つすべてを指します。 a.bは、bがオブジェクトのメンバー(またはオブジェクトへの参照[1])である場合にのみ使用されます。したがって、a.bの場合、aは常にクラスの実際のオブジェクト(またはオブジェクトへの参照)になります。 a→bは基本的に(* a).bの省略表記です。つまり、aがオブジェクトへのポインタである場合、a→bはポイ

  2. C ++の#defineとconstキーワードの違いは何ですか?

    #defineディレクティブはプリプロセッサディレクティブです。プリプロセッサは、コンパイラがマクロを認識する前に、これらのマクロを本体に置き換えます。これは、ソースコードの自動検索と置換と考えてください。 const変数宣言は、言語で実際の変数を宣言します。これは、実際の変数のように使用できます。アドレスを取得し、渡し、キャストし、変換します。 コンパイラの最適化がないと、さまざまなケースでこれらの両方に関連するメモリ割り当ての隠れたコストが発生します。しかし、適切に最適化すれば、それらはほぼ同じになります。また、プリプロセッサマクロにはスコープがありませんが、const値にはスコープがあ