fprintf関数 - フォーマットした文字列を出力先を指定して出力
fprintf関数は、フォーマットした文字列を出力先を指定して出力できます。printf関数は、標準出力に出力しますが、出力先を指定できるのが、fprintf関数です。stdio.hヘッダを読み込むと使えます。
#include <stdio.h> int fprintf(FILE *fp, const char *format, ...);
標準出力に出力する
fprintf関数を使って、標準出力に出力してみましょう。printf関数と同じことをします。stdoutは、標準出力ストリームを意味するFILE構造体へのポインタです。
#include <stdio.h> int main(void) { const char* message = "Hello"; fprintf(stdout, "%s\n", message); }
出力結果です。
Hello
標準エラー出力に出力する
fprintf関数を使って、標準エラー出力に出力してみましょう。stderrは、標準エラーストリームを意味するFILE構造体へのポインタです。
#include <stdio.h> int main(void) { const char* message = "Hello"; fprintf(stderr, "%s\n", message); }
出力結果です。エラー出力に出力されます。
Hello
ファイルに出力する
fprintf関数を使って、ファイルに出力してみましょう。fopen関数でファイルを開いて、ファイルに書き込んでみましょう。開いたファイルはfclose関数で閉じています。
#include <stdio.h> #include <stdlib.h> int main(void) { // 書き込み用にファイルを開く const char* out_file = "output.txt"; FILE* out_fp = fopen(out_file, "w"); if (out_fp == NULL) { fprintf(stderr, "Can't open file %s\n", out_file); exit(1); } // fprintf関数でファイルに書き込む const char* message = "Hello"; fprintf(out_fp, "%s\n", message); // ファイルを閉じる fclose(out_fp); }
output.txtを開いてみましょう。以下の内容が出力されています。
Hello