サイトマップ / C言語講座>出入り口>総目次>目次:入出力(2)>書式付き出力と書式指定子
[書式付き入力と書式指定子]←このソース→[色々なデータ型の最大値、最小値]
/* 今日は、書式付き出力で使用される書式指定子について詳しく学びます。書式付き出力を行う標準ライブラリ関数には次のものがあります。
prinft( ), fprintf( ), sprintf( ), vprintf( ), vfprintf( ),
vsprintf( )
書式付き出力で使われる書式指定子は次の形をしています。
%[フラグ][フィールドサイズ][.[精度]][引数サイズ] 変換文字
フラグ:指定子を修飾。いくつ付けても良い。
| フラグ | そ の 意 味 |
| - | 出力される文字を左寄せ |
| + | 正の整数の前にプラス記号を付ける |
| スペース | 正の数ならば数値の前にスペースを付ける |
| # | ・指定子oに対して、0を付け、最初の桁を0にする ・指定子 x または X に対して、数値が0でなければ、0xを付ける ・指定子e、E、f、 g または Gに対しては、小数点以下も出力 |
フィールドサイズ:文字数を整数で指定する。
精度:.(ピリオド)に数字を続けて精度を指定する。
| 変換文字 | 精 度 |
| s | 文字列から出力する最大文字数 |
| e、E、f | 少数点以下の桁数 |
| g、G | 出力する最大有効桁数 |
| d、o、u、x、X | 出力する最大有効桁数、空白は0で埋められる |
| 引数サイズ | そ の 意 味 |
| h | d、o, u, x, X 変換の時、対応するパラメータが、 short, int, unsigned short, unsigned int 型であることを示す。 |
| l | d、o, u, x, X 変換の時、対応するパラメータが、 long, unsigned long 型であることを示す。 |
変換字は、引数の出力方法を指定します。省略はできません。
| 変換文字 | そ の 結 果 |
| c | 文字を出力 |
| s | 文字列を出力 |
| d | 符号付き10進数の形で出力 |
| u | 符号なし10進数の形で出力 |
| o | 符号なし8進数の形で出力 |
| x | 符号なし16進数の形で出力 |
| X | 符号なし16進数の形で出力 |
| e, E | 浮動小数点数を [-]x.xxxe[+|-]xxの形で出力 |
| f | 浮動小数点数を [-]xxx.xxx の形で出力 |
| g | 浮動小数点数を f 変換または e 変換して出力 |
| G | 浮動小数点数を f 変換または G 変換して出力 |
今日のソースプログラムでは、f変換とg変換の違いを比較します。メインルーチンの中で、double型の変数xを宣言し、1.0に初期化します。ループの中で、f変換とg変換で変数xの値を表示し、10で割って、x > 0.0000001 が成り立つ間ループを続けます。プログラムを実行して、f変換とg変換の違いを確認して下さい。 */
#include <stdio.h>
void main(void);
void main(void)
{
double x = 1.0;
printf("double x = 1.0\n\n");
while (x > 0.0000001 ) { /* %%で%を出力 */
printf("%%8.6lf:%8.6lf\n", x); /* 小数点以下6桁 を f 変換で出力 */
printf("%%g:%g\n", x); /* g 変換で出力 */
x /= 10; /* x の値を 10 分の 1 にする */
}
}
|
[書式付き入力と書式指定子]←このソース→[色々なデータ型の最大値、最小値]
/* (C) 2000- YFプロ. All Rights Reserved. */ 提供:C言語講座−それ自体コンパイルできる教材を使った講座です−