Control input...¿Enter?

Iniciado por prometheus48, 28 Enero 2012, 12:34 PM

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

prometheus48

Hola,

Estaba programando cuando de repente me encontre con un problemilla.
Hay un bucle, en el que sus instricciones son mostrar en pantalla ">>> ", y despues recoger un dato tipo string.Pero quiero que si el usuario no introduce ningun dato,que se vuelva a recorrer el bucle, osea:
         -El programa muestra en pantalla ">>> "
         -El programa espera hasta que el usuario introduzca un dato
         -El usuario, en vez de introducir un dato pulsa enter
         -El bucle empieza otra vez
         -El programa muestra en pantalla ">>> "
         -...
¿Me entendeis?
No se como hacerlo.
Espero que alguien me ayude.

Salu2!
"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free

DickGumshoe

No estoy seguro, pero si el bucle se repite cuando el usuario no mete ningún dato, puedes probar a que se repita cuando el usuario introduce ("")

Pero repito, soy novato, y no sé si es así realmente.

Saludos.

prometheus48

Hola,

Gracias por tu respuesta, pero claramente no va a funcionar, ya que la tecla enter tiene un valor,
en ASCII es 13, si no me equivoco, pero no se implementarlo.

Salu2!
"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free

DickGumshoe

#3
¿Me podrías pasar tu código? Si es así, intentaré ver cuál es el error y eso.

Saludos.

EDITO:

Comparando el dato que mete con ("") sí sale. Mira:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(){
    char dato[20];
    do{
   
    printf("<<<");
    gets(dato);
    }
    while(strcmp(dato,"")==0);
   
    system("pause");
    return 0;
}



Espero haberte ayudado.

Saludos!