i = fprintf(fd, format, ...) i = fprintf(file, format, ...)
Integer i; Integer i;
Integer fd; String file;
String format; String format;
【詳細】
fprintf(fd, format, ...)は,文字列 format で指定した書式で
fd = fopen()でオープンしたファイルにデータを書き込む。
整数型,実数型,文字列型のデータを出力できる。
書式は,C言語の関数 printf() の書式と同じものを指定する。
すなわち,普通の文字(アルファベット,数字,エスケープ文字)
あるいは変換を表す文字列を指定する。エスケープ文字には次の
ものがある。
\ a |
: |
警告(ベルなど) |
\ v |
: |
垂直タブ |
\ b |
: |
バックスペース |
\ \ |
: |
バックスラッス |
\ f |
: |
改ページ |
\ ' |
: |
アポストロフィ |
\ n |
: |
復帰改行 |
\ " |
: |
二重引用符 |
\ r |
: |
復帰 |
\ ? |
: |
疑問符 |
\ t |
: |
水平タブ |
|
|
|
変換を表すには,パーセント % ,フィールド幅(オプション),変換文字
を指定する。変換文字には,次の文字がある。
%d |
: |
整数型 |
%e, %E, %f, %g |
: |
実数型 |
%s |
: |
文字列型 |
fprintf()は変換して出力したデータの数を返す。
fprintf(1,format, ...)は標準出力へ,
fprintf(2,format, ...)は標準エラー出力へ,それぞれ出力する。
fprintf(file,format, ...)は,ファイルfileをオープンし,
fortmatで指定した書式でデータを書き込み,ファイルを閉じる。
データを 1 度だけ書き込む場合は,この方法が便利である。
ただし,データを何度も書き込む場合は,ファイルのオープン
とクローズが繰り返されるので効率が非常に悪い。
【例題】
ファイル afo を書き込み用にオープンし,fprintf() でデータを書き込む。
if ((fd = fopen("afo", "w")) < 0) {
error("Can't open %s", "afo");
}
fprintf(fd, "%d %f %s", 10, 3.1415, "Hello");
fclose(fd);
【参照】