C/Visual C - validar entrada de datos

 
Vista:

validar entrada de datos

Publicado por estudiante  (3 intervenciones) el 08/07/2008 23:41:19
Hola a todos:
Tengo el siguiente codigo:
...
for ( i = 0; i < CLASES; i++ ) {
printf( " Clase %d ", i + 1 );
for ( j = 0; j < NOTAS; j++ )
notas[ i ][ j ] = obt_nota( j );
}
...

float obt_nota( int j ) {
char nota[ 80 ];

do {

printf( " Nota del alunmo %d: ", j + 1 );
gets( nota );

}while( !atof( nota ) );

return atof( nota );
}

Ahora esto me permite validar ingresos numéricos float, pero el problema es que no toma
el cero como valor valido..como puedo solucionar esto ya que el programa debe aceptar al cero tambien como valor valido.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:validar entrada de datos

Publicado por Tom (619 intervenciones) el 09/07/2008 09:17:23
1.- Lee la doc. de la función atof()

2.- Chequea la variable errno

3.- Considera usar strtod()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:validar entrada de datos

Publicado por Oscar (1 intervención) el 12/07/2008 13:56:08
Adapta la siguiente funcion a tus necesidades...
Nada mas recuerda que la funcion strtod() es parte de la <stdlib.h>

float leer_nota()
{
char nota[80] = "";
float t;
int err = 1; // condicion de error
char *ptr;
do
{
printf("Nota del alunmo:");
gets( nota );
t = strtod(nota, &ptr);
if (ptr - nota == strlen(nota) ) err = 0;
} while( err );

return t;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar