# Print Formatted

printf, sprintfに対応する処理を行います。

{% hint style="info" %}
本ライブラリではMacro Poland氏のprintf,sprintfライブラリを利用しています。\
<https://github.com/mpaland/printf>
{% endhint %}

## printfmt

ストリーム[`IStreamOut`](https://mwm5.twelite.info/1.0-2/references/basics/twe/untitled)オブジェクトに対して`<<`演算子の右オペランドとして利用します。

```cpp
printfmt(const char*fmt, ...)
ISteramOut& operator << (IStreamOut& strm, printfmt f)

//例
  the_screen << printfmt("%04X", 0x12ab) << crlf;
```

`printfmt`クラスのコストラクタのパラメータの１番目`fmt`に書式を指定します。以降のパラメータはC++テンプレートのパラメータパックで実装されており可変数引数となっています。printfのように書式に対応した引数を指定します。printfと違い引数の数は最大４つに制限されます。

## fPrintf()

ストリーム[`IStreamOut`](https://mwm5.twelite.info/1.0-2/references/basics/twe/untitled)オブジェクトを出力先としてfprintfと同じ処理を行います。

```cpp
int fPrintf(TWE::IStreamOut& fp, const char* format, ...)
```

１番目の引数がストリームオブジェクトとなる点を除きfprintfと同じ使い方です。

## snPrintf()

snprintfの処理を行います。

```cpp
int snPrintf(char* buffer, size_t count, const char* format, ...)
```
