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

Un switch dentro de un while se me carga el cin.get()

Estas en el tema de Un switch dentro de un while se me carga el cin.get() en el foro de C/C++ en Foros del Web. A ver si me explico: (pseudocode, uso c++) Código: #include <iostream> using namespace std; //cosaas entremedias do { //cosas cin >> opcion switch(opcion){ case1 -> ...
  #1 (permalink)  
Antiguo 01/12/2007, 06:09
Avatar de Solenbum  
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 17 años
Puntos: 0
Un switch dentro de un while se me carga el cin.get()

A ver si me explico:

(pseudocode, uso c++)
Código:
#include <iostream>
using namespace std;
//cosaas entremedias
do {
  //cosas
  cin >> opcion
  switch(opcion){
    case1 -> cosas1;break;
    case2 -> cosas2; break;
    case3 -> modifico salir, y saldre del while mas abajo; break;
    default -> mensajeerror;
  }//fin switch
  cin.get();
} while (nosalir);
El problema es que el cin.get() que le meto ahí (para que sea para cualquier opcion) no me funciona (lo ignora, pasa a analizar el while siempre), si lo meto en una opción si, y no entiendo porque.
Lo que quiero hacer es que cada opcion haga algo y muestre un mensaje y que espere una letra para continuar una vez muestre ese mensaje.
  #2 (permalink)  
Antiguo 02/12/2007, 04:06
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Re: Un switch dentro de un while se me carga el cin.get()

El problema que tenes es que cin >> opcion no descarta el \n y entonces cuando llamas a cin.get() devuelve ese caracter unicamente. Una solucion no muy espectacular es poner otro cin.get() y los switch's no tienen ninguna relacion con el problema ... si los borras y depuras el programa vas a ver como solo espera entrada del teclado en cin >> opcion.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 02/12/2007, 15:24
Avatar de Solenbum  
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 17 años
Puntos: 0
Re: Un switch dentro de un while se me carga el cin.get()

Ahora entendi. No pude depurarlo hasta hace poco ya que estos dias he estado trabajando en un pc centro en el que no tienen depurador y no dejan instalar cosas.

Se agradece.
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 13:42.