サイトマップ / 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言語講座−それ自体コンパイルできる教材を使った講座です−