Saltar al contenido

c – Especificador de formato correcto para doble en printf

octubre 20, 2021
apple touch icon@2

Dado que C99 estándar (es decir, el N1256 draft), las reglas dependen del tipo de función: fprintf (printf, sprintf, …) o scanf.

Aquí se extraen partes relevantes:

Prefacio

Esta segunda edición cancela y reemplaza la primera edición, ISO / IEC 9899: 1990, enmendada y corregida por ISO / IEC 9899 / COR1: 1994, ISO / IEC 9899 / AMD1: 1995 e ISO / IEC 9899 / COR2: 1996. Los principales cambios de la edición anterior incluyen:

  • %lf especificador de conversión permitido en printf

7.19.6.1 El fprintf función

7 Los modificadores de longitud y sus significados son:

l (ell) Especifica que (…) no tiene ningún efecto sobre el siguiente especificador de conversión a, A, e, E, f, F, go G.

L Especifica que el siguiente especificador de conversión a, A, e, E, f, F, go G se aplica a un argumento doble largo.

Las mismas reglas especificadas para fprintf solicitar printf, sprintf y funciones similares.

7.19.6.2 El fscanf función

11 Los modificadores de longitud y sus significados son:

l (ell) Especifica que (…) que el siguiente especificador de conversión a, A, e, E, f, F, go G se aplica a un argumento con puntero de tipo a doble;

L Especifica que el siguiente especificador de conversión a, A, e, E, f, F, g o G se aplica a un argumento con puntero de tipo a doble largo.

12 Los especificadores de conversión y sus significados son: a, e, f, g Coincide con un número de punto flotante con signo opcional, (…)

14 Los especificadores de conversión A, E, F, G y X también son válidos y se comportan de la misma manera que, respectivamente, a, e, f, g y x.

La larga historia corta, para fprintf Se especifican los siguientes especificadores y los tipos correspondientes:

  • %f -> doble
  • %Lf -> doble largo.

y para fscanf está:

  • %f -> flotar
  • %lf -> doble
  • %Lf -> doble largo.
close