Udostępnij za pośrednictwem


_set_output_format

Dostosowuje formaty danych wyjściowych używane przez sformatowane funkcje we/wy.

Ważne

Ta funkcja jest przestarzała. Począwszy od programu Visual Studio 2015, nie jest on dostępny w CRT.

Składnia

unsigned int _set_output_format(
   unsigned int format
);

Parametry

format
[in] Wartość reprezentująca format do użycia.

Wartość zwracana

Poprzedni format danych wyjściowych.

Uwagi

_set_output_format służy do konfigurowania danych wyjściowych sformatowanych funkcji we/wy, takich jak printf_s. Jedyną konwencją formatowania, którą można zmienić przez tę funkcję, jest liczba cyfr wyświetlanych w wykładnikach w danych wyjściowych liczb zmiennoprzecinkowych.

Domyślnie dane wyjściowe liczb zmiennoprzecinkowych według funkcji, takich jak printf_s, wprintf_si powiązane funkcje w bibliotece C++ Standard C++ drukują trzy cyfry wykładnika, nawet jeśli trzy cyfry nie są wymagane do reprezentowania wartości wykładnika. Wartości zero są używane do uzupełniania wartości do trzech cyfr. _set_output_format Umożliwia zmianę tego zachowania tak, aby tylko dwie cyfry zostały wydrukowane w wykładnik, chyba że trzecia cyfra jest wymagana przez rozmiar wykładnika.

Aby włączyć wykładniki dwucyfrowe, wywołaj tę funkcję za pomocą parametru _TWO_DIGIT_EXPONENT, jak pokazano w przykładzie. Aby wyłączyć dwie cyfry wykładników, wywołaj tę funkcję z argumentem 0.

Wymagania

Procedura Wymagany nagłówek
_set_output_format <stdio.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność w temacie Wprowadzenie.

Przykład

// 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

Zobacz też

printf_s, , _printf_s_l, , wprintf_s_wprintf_s_l
_get_output_format