Entrada y salida con formato

Iniciado por niano, 6 Abril 2019, 10:36 AM

0 Miembros y 1 Visitante están viendo este tema.

niano

Hola buenas.

Tengo un problema con un programa en el que pretendo utilizar el especificador de formato %g. Según tengo entendido la entrada puede hacerse por teclado introduciendo, por ejemplo, 2e-4. Lo que quiere decir 0.0002. Pues bien, introduzco el dato y luego al mostrarlo por pantalla me sale algo que no tiene nada que ver. El código es el siguiente:

main()
{
double x;
scanf("%g",&x);
printf("%g",x);
}

Como ya he dicho, al imprimir por pantalla el número que he introducido previamente por teclado me sale algo que no tiene nada que ver. Por ejemplo, meto 2e-4 y me imprime 1.#NAN . O sea, que algo no funciona bien. ¿Alguien sabe qué es lo que está pasando?

Agradezco de antemano cualquier ayuda. Un Saludo.

K-YreX

Cambia el tipo de <x> de <double> a <float> y me comentas si te ha funcionado.
O al revés, si quieres usar <x> como <double>, cambia el formato de <%g> a <%lg>.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

niano

Hola

Muchas gracias por responder YreX-DwX. Ya lo he corregido y funciona perfectamente. He optado por la segunda opción ya que necesitaba la precisión de un double.

Saludos.