Dev - C++ - Validar la introduccion de un char

 
Vista:

Validar la introduccion de un char

Publicado por Daniel (3 intervenciones) el 29/06/2008 18:42:49
Mi duda es la siguiente:

char nombre[30];
do{
cin>>nombre;
}while (nombre>30 caracteres introducidos);
cout<<nombre;

Como puedo hacer para que en este codigo solo se pueda introducir hasta 30 caracteres maximo?
Validarlo para cin>>nombre; se repita mientras que la cantidad de caracteres es >30, como hago eso?
Hay alguna funcion similar al nombre.size() que se usa con string o algo asi?
No puedo usar string, tengo que usar chars.


Y la otra duda que tengo es como validar que el usuario solo introduzca numeros y nada mas en algo asi:
int x;
do{
cin>>x;
}while( X no es un numero);
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 la introduccion de un char

Publicado por eduardo (26 intervenciones) el 04/07/2008 18:32:31
1) Una solución podria ser crear una version sencilla de la funcion gets() adaptandola para que acepte el ingreso de sólo 30 caracteres:

void my_gets ( char *s ) {
register char car;
register int t;

for( t = 0; t < 30; ) {
car = getche();
switch( car ) {
case ' ' :
s[ t ] = '';
printf( " " );
return;
case '' :
if( t > 0 )
t--;
break;
default :
s[ t ] = car;
t++;
}
}
s[ 30 ] = '';
}

2) Puedes crearte una función donde el ingreso del dato sea tratado como una cadena usando la función atoi() o atof() puedes retornar el valor ya convertido y con un ciclo while puedes forzar a que se introduzca un valor numérico.

Saludos
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