Dev - C++ - como validar entradas

 
Vista:

como validar entradas

Publicado por sinnickname19 (1 intervención) el 22/04/2009 03:43:31
buenas saludos a todos yo soy nuevo en esto de progrmacion empeza en la uni hace poco y tengo que hacer un programa en c++ donde los datos tienen que ser de tipo entero mi pregunta es que como puedo hacer para que el usuario solo pueda introducir datos enteros y no caracteres u otro tipo de datos...
pensaba hacerlo con un do, mientras, while (no se como llamen o decirle a esta intruccion ) pero no se que poner en la condicion...

muchas gracias de antemano y disculpen mi ignorancia que se que es mucha
soy novato en esto...
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:como validar entradas

Publicado por eduardo (26 intervenciones) el 29/04/2009 21:44:24
Tienes que utilizar un ciclo de repetición, yo he usado while() en donde capturas cada pulsación de tecla pero no la muestras en pantalla hasta despues de validarla. el bucle sigue leyendo hasta que el usuario pulsa Entrar (como lo hace scanf() o gets()); lo cual se corresponde con el caracter de retorno de carro.

A continuación te posteo un pequenio programa con un par funciones que hacen todo el trabajo.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h> /* No Ansi C */

#define MAX 14 /* máxima cantidad de caracteres en la entrada (numJuegos) */

/* prototipo */
unsigned long int obtNumero( void );

/* la función main() comienza la ejecución del programa */
int main()
{
unsigned long int num;

system( "cls" );
printf( " Ingrese n%cmero: ", 163 );
num = obtNumero();

printf( " su n%cmero es %lu ", num );

getch(); /* pausa */
return 0; /* indica terminación exitosa */

} /* fin de main() */

/* IMPLEMENTACIÓN DE FUNCIONES */

usigned long int obtNumero( void )
{

}

/* devuelve un puntero a la cadena "s" que contiene un N(Natural) */
char *obtNatural( char *s, const int max )
{
register char c;
int i = 0;

char *strcatchr( char *cad, char c, int *t ); /* prototipo */

/* iniciar la cadena a nulo */
s[0] = ''; // *s = '';

/* mientras no se pulse retorno de carro */
while ( (c = (char)getch() ) != ' ' ) {

/* si pulsa Backspace y hay caracteres en la cadena */
if ( c == '' && i > 0 ) {
putchar( c );
putchar( ' ' );
putchar( c );
i--;
s[i] = '';
}
else {

/* si hay espacio en la cadena */
if ( i < max ) {

/* si pulsa un dígito */
if ( c >= '0' && c <= '9' ) {
putchar( c );
strcatchr(s, c, &i);
}
}
}
}
putchar( ' ' );

return s;
}

/* concatena el caracter 'c' a la cadena apuntada por "cad" */
char *strcatchr( char *cad, char c, int *t )
{
cad[*t] = c;
(*t)++;
cad[*t] = '';

return cad;
}
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:como validar entradas

Publicado por gabo (2 intervenciones) el 29/04/2009 22:21:08
ocupa el comando

switch
{
case1 ..............................;
case2 ..............................;
case3 ..............................;
}
dentro de cada uno lo puedes ocupar super bien como menu
y nunca se caera...
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