## f_printf

ファイルに書式化文字列を書き込みます。

    int f_printf (
      FIL* fp,           /* [IN] ファイル・オブジェクト */
      const TCHAR* fmt,  /* [IN] 書式制御文字列 */
      ...
    );

#### 引数

fp
  ファイル・オブジェクト構造体へのポインタを指定します。
fmt
  ヌル文字`'\0'`終端の書式制御文字列を指すポインタを指定します。ヌル文字は書き込まれません。
...
  オプションの引数。

#### 戻り値

文字列が正常に書き込まれると、書き込まれた文字数が返されます。ディスクが満杯またはその他エラーにより正常に書き込まれなかったときは、関数は失敗し`EOF (-1)`が返されます。

#### 解説

この関数は、`f_putc()`および`f_puts()`のラッパー関数です。書式制御機能はC標準ライブラリのサブセットとなっていて、書式制御文字は次に示すものが使用可能です。

- タイプ: `c C s S d D u U x X b B`
- 精度指定: `l L`
- フラグ: `0 -`

#### 対応情報

`_FS_READONLY == 0`で、且つ`_USE_STRFUNC`が1または2のとき使用可能になります。2の時は、出力に含まれる`'\n'`が`'\r'+'\n'`に展開されてファイルに書き込まれます。

APIにUnicodeが選択(`_LFN_UNICODE`が1)されているときは、`fmt`はUnicode文字列になりますが、ファイル上のエンコードは、`_STRF_ENCODE`オプションで選択できます。それ以外の時は無変換(1バイト/1文字)で書き込みます。

#### 使用例

        f_printf(&fil, "%d", 1234);            /* "1234" */
        f_printf(&fil, "%6d,%3d%%", -200, 5);  /* "  -200,  5%" */
        f_printf(&fil, "%ld", 12345L);         /* "12345" */
        f_printf(&fil, "%06d", 25);            /* "000025" */
        f_printf(&fil, "%06d", -25);           /* "000-25" */
        f_printf(&fil, "%-6d", 25);            /* "25    " */
        f_printf(&fil, "%u", -1);              /* "65535" or "4294967295" */
        f_printf(&fil, "%04x", 0xAB3);         /* "0ab3" */
        f_printf(&fil, "%08LX", 0x123ABCL);    /* "00123ABC" */
        f_printf(&fil, "%016b", 0x550F);       /* "0101010100001111" */
        f_printf(&fil, "%s", "String");        /* "String" */
        f_printf(&fil, "%8s", "abc");          /* "     abc" */
        f_printf(&fil, "%-8s", "abc");         /* "abc     " */
        f_printf(&fil, "%c", 'a');             /* "a" */
        f_printf(&fil, "%f", 10.0);            /* 浮動小数点は未サポート */

#### 参照

`f_open, f_putc, f_puts, f_gets, f_close, FIL`

戻る