1. ホーム
  2. c

[解決済み】fprintf、printf、sprintfの違い?

2022-04-05 22:55:47

質問

との違いについて、どなたかわかりやすく説明してください。 printf , fprintf および sprintf を例示してください。

どのようなストリームにあるのですか?

C"ファイルハンドリングについて読みながら、この3つの間で本当に混乱しています。

どのように解決するのですか?

C言語では、ストリームは抽象的なもので、プログラムの観点からは、単にバイトの生産者(入力ストリーム)または消費者(出力ストリーム)です。 ストリームは、ディスク上のファイル、パイプ、端末、プリンタやttyなどの他のデバイスに対応することができます。 そのため FILE 型には、ストリームに関する情報が含まれています。 通常は FILE オブジェクトの中身は直接、様々なI/Oルーチンにそのポインタを渡すだけです。

標準的なストリームは3つあります。 stdin は標準入力ストリームへのポインタです。 stdout は標準出力ストリームへのポインタ,そして stderr は、標準エラー出力ストリームへのポインタです。 対話型セッションでは、この3つは通常コンソールを指しますが、他のファイルやデバイスを指すようにリダイレクトすることができます。

$ myprog < inputfile.dat > output.txt 2> errors.txt

この例では stdin を指すようになりました。 inputfile.dat , stdout 指し示す output.txt そして stderr 指し示す errors.txt .

fprintf は,指定された出力ストリームに整形されたテキストを書き出す。

printf は、次のように書くことと同じです。 fprintf(stdout, ...) で、標準出力ストリームが現在指しているところに、フォーマットされたテキストを書き込む。

sprintf の配列に整形されたテキストを書き出します。 char ストリームとは対照的です。