1

重複の可能性:
C++でのprintfとcout

coutとprintfの違いは何ですか?

4

4 に答える 4

1

coutは自動的にキャストを作成し、印刷しようとしている変数のタイプを見つけます。したがって、次のようなことができます。

int myint = 5;
cout << myint;

そして、coutはmyintがintであることを検出し、それを出力します。printfでは、印刷しようとしている変数のタイプを指定する必要があります。

int myint = 5;
printf("%d", myint);

また、coutはprintfよりも低速です(型検出を行うため...)が、ほとんどの実際のアプリケーションでは、パフォーマンスの違いに気付くことはありません。

于 2011-02-12T14:13:08.043 に答える
1

printfは、ライブラリの標準出力であるstdioCのIOライブラリにデータを出力するために使用される関数です。これは主にレガシーの理由でC ++に保持されますが、それでも役立つ場合もあります。

coutiostreamsライブラリからのC++ストリームです(特に、として定義されていますostream &)。iostreamsライブラリは、IOを実行するためのネイティブC++の方法です。

一般に、古いprintfのような関数よりもiostreamを使用する方が簡単で安全です(フォーマット文字列+ varargsの代わりに演算子のオーバーロードのおかげで<<)。これはC ++の「慣用的な」方法でIOを実行するため、特定の場合を除いて使用する必要があります。そうする必要はありません。

于 2011-02-12T14:13:29.837 に答える
0

基本的に、coutはC ++の方法で標準出力に出力し、printfはCの方法です。

C ++ iostream(そのうちのcout1つ)はC ++クラスに基づいており、新しいクラスを処理するために拡張可能です。つまり、というクラスを作成してから、次の操作を実行できますfoo

foo bar;
std::cout << bar << std::endl;

一方、printf新しい型を処理することはできません。printfその型の各コンポーネントを呼び出す関数を作成する必要があります。各コンポーネントは、すでに既知の型printfintまたはなどchar *)です。

printfC++コードで使用する言い訳は本当にありません。私はいつも、C ++を使用する場合は、旧世界ではなく、C ++を使用する必要があると言っています:-)使用する場合は、printfCを使用してください。


クラスをiostreamで使用できるようにする方法の例を探している場合は、それを実行するコードに関する以前の質問に対して私が提供した回答を参照してください。

于 2011-02-12T14:10:37.467 に答える
0

http://forums.devshed.com/c-programming-42/difference-between-cout-and-printf-38373.htmlから取得

coutは、C++のiostreamのオブジェクトです。C ++を使用している場合は、coutを使用すると、うまく機能します。printfは同じことをしている間、標準出力に出力するフォーマット機能です。これは主にCで使用されます。

したがって、printfは、文字列をフォーマットできるため、ある意味でcoutの兄貴です。

于 2011-02-12T14:11:05.890 に答える