stdio
は C の標準 IO 用です.h
。末尾に a が必要です。C++ では、すべての C ヘッダーがヘッダーにカプセル化されていますcxxxxxx
( なし.h
)。は<stdio.h>
と同じ<cstudio>
です。これらは、単純な IO 用のprintf
や などの機能を提供します。scanf
iostream
一方、C++ の IO ライブラリであり、おっしゃったようcin
に や などのストリームを提供しcout
ます。
アプリケーションに応じて、ほとんどの場合、それらを交互に使用できます。構文は明らかに異なります。
C 関数を使用すると、テキストの書式設定が簡単になります。例えば:
printf("item %04d has a value of %+.6e\n", index, value);
よりも書きやすいです (<iomanip>
に加えて必要です<iostream>
):
std::cout << "item " << std::setw(4) << std::setfill('0') << index
<< "has a value of " << std::setprecision(6) << value << "\n";
ただし、最初のものを使用するときは、より注意する必要があります。たとえば、次の行ではコンパイル エラーは発生しませんが (ただし、前述のとおり、コンパイル時に警告が表示される場合があります)、実行時の問題が発生します。
printf("I wonder what will happen? %d\n");
ほとんどのストリームの「魔法」はコンパイル時に発生し、同様の結果が得られるはずなので、パフォーマンスに大きな違いはないと思います。100%確実ではないので、間違っていたらごめんなさい。