printf
、、fprintf
およびの違いsprintf
を例を挙げて簡単な英語で説明できる人はいますか?
それはどのストリームですか?
「C でのファイル処理」について読んでいるときに、この 3 つについて本当に混乱しています。
ベストアンサー1
C では、「ストリーム」は抽象化されています。プログラムの観点からは、単にバイトのプロデューサー (入力ストリーム) またはコンシューマー (出力ストリーム) です。これは、ディスク上のファイル、パイプ、端末、またはプリンタや tty などの他のデバイスに対応します。FILE
タイプには、ストリームに関する情報が含まれています。通常、オブジェクトの内容を直接操作することはなくFILE
、さまざまな I/O ルーチンにポインタを渡すだけです。
標準ストリームは 3 つあります。stdin
は標準入力ストリームへのポインター、stdout
は標準出力ストリームへのポインター、stderr
は標準エラー出力ストリームへのポインターです。対話型セッションでは、通常、これら 3 つはコンソールを参照しますが、他のファイルやデバイスを指すようにリダイレクトすることもできます。
$ myprog < inputfile.dat > output.txt 2> errors.txt
この例では、stdin
now は を指しinputfile.dat
、stdout
は を指しoutput.txt
、stderr
は を指しますerrors.txt
。
fprintf
指定した出力ストリームにフォーマットされたテキストを書き込みます。
printf
書き込みと同等でありfprintf(stdout, ...)
、標準出力ストリームが現在指している場所にフォーマットされたテキストを書き込みます。
sprintf
char
ストリームではなく、フォーマットされたテキストを の配列に書き込みます。