Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Como hago el desea salir o no?

Estas en el tema de Como hago el desea salir o no? en el foro de C/C++ en Foros del Web. Hola a todos, recien me inicio en el campo de programacion en C, lo voy a utilizar bastante para programar microcontroladores(esa fue mi presentacion jaja) ...
  #1 (permalink)  
Antiguo 06/03/2013, 22:05
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Como hago el desea salir o no?

Hola a todos, recien me inicio en el campo de programacion en C, lo voy a utilizar bastante para programar microcontroladores(esa fue mi presentacion jaja) bueno la duda es como crear ese "desea salir o no? pulse tal tecla" ya menejo el scanf() y algunas instrucciones de control
  #2 (permalink)  
Antiguo 07/03/2013, 02:53
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como hago el desea salir o no?

Prueba de la siguiente manera:

Código:
#include <stdio.h>

int main(int argc, char * argv[])
{
   char salir;

   do
   {
      printf("Desea salir del programa (s/n)?:");
      scanf("%c", &salir);
   } while((salir != 's') || (salir != 'S'));
   
   return 0;
}
Aquí simplemente te pregunta si quieres salir, y si repite todo el bucle hasta que introduzcas una s.

Última edición por gowikel; 07/03/2013 a las 02:55 Razón: Corregir código fuente
  #3 (permalink)  
Antiguo 07/03/2013, 05:22
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Como hago el desea salir o no?

Tambien puedes usar la funcion exit(0);
  #4 (permalink)  
Antiguo 07/03/2013, 16:07
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como hago el desea salir o no?

Cita:
Iniciado por amchacon Ver Mensaje
Tambien puedes usar la funcion exit(0);
si escribe exit(0) sale del programa directamente, sin preguntar ni validar nada. Mejor haz lo que te dije arriba, adaptándolo a tu código.
  #5 (permalink)  
Antiguo 07/03/2013, 19:14
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como hago el desea salir o no?

Cita:
Iniciado por gowikel Ver Mensaje
si escribe exit(0) sale del programa directamente, sin preguntar ni validar nada. Mejor haz lo que te dije arriba, adaptándolo a tu código.
Hola, no entiendo bien el codigo

while((salir != 's') || (salir != 'S'));

aca supuestamente me pregunta varias veces s o S, no tendria que ir un scanf hay? y para que son los (int argc, char * argv[]) declaradas en la funcion main?

no me funciona el codigo, me pregunta varias veces por mas que ponga s o S
gracias
  #6 (permalink)  
Antiguo 07/03/2013, 21:26
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Como hago el desea salir o no?

Debería ser:

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char * argv[])
  4. {
  5.    char salir;
  6.  
  7.    do
  8.    {
  9.       printf("Desea salir del programa (s/n)?:");
  10.       scanf("%c", &salir);
  11.    } while((salir != 'n') || (salir != 'N'));
  12.    
  13.    return 0;
  14. }

argc y argv son la cantidad de argumentos y cada uno de ellos que se pasan por la línea de comandos al ejecutar el programa, respectivamente.

  #7 (permalink)  
Antiguo 08/03/2013, 02:03
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Como hago el desea salir o no?

Cita:
Iniciado por gowikel Ver Mensaje
si escribe exit(0) sale del programa directamente, sin preguntar ni validar nada. Mejor haz lo que te dije arriba, adaptándolo a tu código.
Evidentemente, la idea es que haya validado antes el "Sí".
  #8 (permalink)  
Antiguo 09/03/2013, 11:14
Avatar de leosansan  
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 11 años, 10 meses
Puntos: 49
Respuesta: Como hago el desea salir o no?

Creo que hay una confusión al usar || en lugar de && :

Código:
#include <stdio.h>

int main()
 {
    char ch;
    do{
       printf ("\nDesea salir (s/n): ");
       scanf ("%c",&ch);
    }while (ch!='s' && ch!='S');
     return 0;
}
Saluditos!. ...
  #9 (permalink)  
Antiguo 10/03/2013, 08:38
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como hago el desea salir o no?

Cita:
Iniciado por leosansan Ver Mensaje
Creo que hay una confusión al usar || en lugar de && :

Código:
#include <stdio.h>

int main()
 {
    char ch;
    do{
       printf ("\nDesea salir (s/n): ");
       scanf ("%c",&ch);
    }while (ch!='s' && ch!='S');
     return 0;
}
Saluditos!. ...
O.o no entiendo el código, si el && es para cuando se cumplían las 2 posibilidades encambio cuando presiono s o S sale del programa igual, no tendria que ir el || como en la respuesta de arriba pero no me funciono, lo modifique para que funcionara unicamente la s
  #10 (permalink)  
Antiguo 10/03/2013, 14:23
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Como hago el desea salir o no?

Hola! para el efecto buscado es indistinto usar el && o ||, todo depende de la condicion usada. De todas formas esto while((salir != 'n') || (salir != 'N')) esta mal...
Otra inconveniente son los caracteres no deseados q quedan en el bufer del teclado. Para limpiar el bufer tenes que agregar esto:
Código C:
Ver original
  1. while(getchar()!='\n'); // limpia el bufer

Juntando todo:
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main()
  4.  {
  5.     char ch;
  6.     do{
  7.        printf ("\nDesea salir (s/n): ");
  8.        scanf ("%c",&ch); while(getchar()!='\n');
  9.     }while (ch=='n' || ch=='N'); // otra forma a lo q te mostraron
  10.      return 0;
  11. }

Saludos
  #11 (permalink)  
Antiguo 12/03/2013, 11:28
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como hago el desea salir o no?

gracias a todos, solucionado.
  #12 (permalink)  
Antiguo 12/03/2013, 11:39
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Como hago el desea salir o no?

EL ciclo

Código C:
Ver original
  1. do{
  2.        printf ("\nDesea salir (s/n): ");
  3.        scanf ("%c",&ch);
  4.     }while (ch!='s' && ch!='S');

lleva el and lógico porque necesitas que siga mientras ch es distinto a 's' Y a 'S'... Fijate que si lo lees coloquial-mente se entiende.
ch tiene que ser distitno a los dos caracteres al mismo tiempo. Si es igual a alguno de los dos ya se termina el ciclo.

Etiquetas: salir, scanf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:11.