次の方法で共有


_set_output_format

書式付き I/O 関数で使用する出力形式をカスタマイズします。

重要

この関数は廃止されています。 Visual Studio 2015 以降、CRT で使用できません。

構文

unsigned int _set_output_format(
   unsigned int format
);

パラメーター

format
[in] 使用する書式を表す値。

戻り値

以前の出力形式。

解説

_set_output_format は、 printf_sなどの書式設定された I/O 関数の出力を構成するために使用されます。 この関数で変更できる唯一の書式規則は、浮動小数点数の出力で指数部に表示される桁数です。

既定では、Visual C++ 標準 C ライブラリの printf_swprintf_s、および関連する関数による浮動小数点数の出力では、指数の値を表すために 3 桁の数字が必要ない場合でも、指数の 3 桁が出力されます。 値が 3 桁になるように 0 が埋め込まれます。 _set_output_format を使用すると、指数部の大きさによって 3 桁目が必要になる場合を除いて、浮動小数点数の指数部が 2 桁のみで出力されるように動作を変更できます。

2 桁の指数部を有効にするには、次の例に示されているとおり、パラメーター _TWO_DIGIT_EXPONENTを指定してこの関数を呼び出します。 2 桁の指数部を無効にするには、引数 0 を指定してこの関数を呼び出します。

要件

ルーチンによって返される値 必須ヘッダー
_set_output_format <stdio.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」をご覧ください。

// crt_set_output_format.c
#include <stdio.h>

void printvalues(double x, double y)
{
   printf_s("%11.4e %11.4e\n", x, y);
   printf_s("%11.4E %11.4E\n", x, y);
   printf_s("%11.4g %11.4g\n", x, y);
   printf_s("%11.4G %11.4G\n", x, y);
}

int main()
{
   double x = 1.211E-5;
   double y = 2.3056E-112;
   unsigned int old_exponent_format;

   // Use the default format
   printvalues(x, y);

   // Enable two-digit exponent format
   old_exponent_format = _set_output_format(_TWO_DIGIT_EXPONENT);

   printvalues(x, y);

   // Disable two-digit exponent format
   _set_output_format( old_exponent_format );

   printvalues(x, y);
}
1.2110e-005 2.3056e-112
1.2110E-005 2.3056E-112
1.211e-005  2.306e-112
1.211E-005  2.306E-112
1.2110e-05 2.3056e-112
1.2110E-05 2.3056E-112
  1.211e-05  2.306e-112
  1.211E-05  2.306E-112
1.2110e-005 2.3056e-112
1.2110E-005 2.3056E-112
1.211e-005  2.306e-112
1.211E-005  2.306E-112

関連項目

printf_s_printf_s_lwprintf_s_wprintf_s_l
_get_output_format