Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Juancho25 en 2 Noviembre 2012, 06:31 am



Título: ¿Cómo evitar pasar a una siguiente opción cuando no hayan ingresado datos?
Publicado por: Juancho25 en 2 Noviembre 2012, 06:31 am
Tengo un programa en el cual se van ingresando datos como por ejemplo nombre, apellidos, fecha de nacimiento, etc, pero tengo un problema, necesito que cuando no se hayan ingresado datos no se pase a la siguiente opción cuando se presione la tecla "enter", ya que esto me sucede con los tipo char y me deja el espacio vacío al momento de mostrar los datos ingresado. Espero y me haya explicado bien y alguien me pueda ayudar.


Título: Re: ¿Cómo evitar pasar a una siguiente opción cuando no hayan ingresado datos?
Publicado por: Caster en 2 Noviembre 2012, 09:08 am
Con una condicion if o con un bucle o algo asi para detectar el fallo, si posteas el codigo seria mas facil.

Saludos


Título: Re: ¿Cómo evitar pasar a una siguiente opción cuando no hayan ingresado datos?
Publicado por: Juancho25 en 2 Noviembre 2012, 09:16 am
Por ejemplo este código:

Código:
cout<<"Ingresa tu nombre";
gets(nombre);
cout<<"Ingresa tus apellidos";
gets(apellidos);

Lo que yo digo es que cada vez que pase por un gets no se pase a la siguiente opción cuando no se ha ingresado nada y se presiona la tecla enter, osea, que no quede el espacio vacío.


Título: Re: ¿Cómo evitar pasar a una siguiente opción cuando no hayan ingresado datos?
Publicado por: NeoB en 2 Noviembre 2012, 10:29 am
Lo he puesto en un "c++" un poco chapucero por que a mi me va el C xD pero creo que será basicamente lo mismo.
Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. char nombre[10];
  8. char apellidos[20];
  9. cout<<"Ingresa tu nombre: ";
  10. while ( nombre[1] == NULL )
  11. {
  12. fgets(nombre, 10, stdin);
  13. }
  14. cout<<"Ingresa tus apellidos: ";
  15. while ( apellidos[1] == NULL )
  16. {
  17. fgets(apellidos, 10, stdin);
  18. }
  19. return 0;
  20. }
  21.