Código:
el programa me compila bien pero en ejecucion no me lee el nombre (string). es muy raro porque si pongo las instrucciones (declaracion del nombre y lectura) al inicio de main el programa lo lee.. que pude ser??# include <iostream> # include <string> using namespace std; void primeraClase(int[]); void claseEconomica(int[]); void imprimirpasaje(string,int,int); int main () { const int tamanio=10; int cupos[tamanio]={}; //inicializa todo los puestos en 0 int opcion=0; cout<<"\n\n\t Reservacion \n\n"; //menu while (opcion!=3) { cout<<"\n por favor escriba:\n"<<"1 para primera clase"; cout<<"\n 2 para clase economico"; cout<<"\n 3 pasa salir"; cout<<"\n que opcion elige: "; cin>>opcion; switch(opcion) { case 1: primeraClase(cupos); break; case 2: claseEconomica(cupos); break; case 3: cout<<"\n\n\t Gracias por usar nuestro Servicio\n\n"; break; default: cout<<"\n Porfavor escriba una entrada valida \n"; opcion=0; } } return 0; } void primeraClase(int arreglo[]) { int a=1; //contador de puestos ocupados cout<<"hacientos disponibles: "; //muestra los lugares disponibles for (int i=0;i<5;i++) { if (arreglo[i]==0) { cout<<i+1<<", "; } else { a++; } } if (6==a) //si todos los puestos estan ocupados { char op; cout<<"\n no hay cupo, desea viajar en la clase economica (s/n): "; //propone traslado a clase economica cin>>op; if (op=='s') claseEconomica(arreglo); else cout<<"\n el proximo vuelo sera dentro de 3 horas \n"; } else //si hay puestos disponibles { int puesto; cout<<"que puesto desea: "; cin>>puesto; while ((arreglo[puesto-1]==1)||(puesto>5)) //compruba que el puesto este disponible y que sea correcto { cout<<"\n puesto ocupado o no valido, elija otro: "; cin>>puesto; } arreglo[puesto-1]=1; string nom; cout<<"\n escriba su nombre: "; getline(cin,nom); imprimirpasaje(nom,puesto,1); } } void claseEconomica(int array[]) { int a=1; //contador de puestos ocupados cout<<"hacientos disponibles: "; //muestra los lugares disponibles for (int i=5;i<10;i++) { if (array[i]==0) { cout<<i+1<<", "; } else { a++; } } if (6==a) //si todos los puestos estan ocupados { char op; cout<<"\n no hay cupo, desea viajar en primeraClase (s/n): "; //propone traslado a primera clase cin>>op; if (op=='s') primeraClase(array); else cout<<"\n el proximo vuelo sera dentro de 3 horas \n"; } else //si hay puestos disponibles { int puesto; cout<<"que puesto desea: "; cin>>puesto; while ((array[puesto-1]==1)||(puesto<6)) //compruba que el puesto este disponible y sea correcto { cout<<"\n puesto ocupado o no valido, elija otro: "; cin>>puesto; } array[puesto-1]=1; string nombre; cout<<"\n escriba su nombre: "; getline(cin,nombre); imprimirpasaje(nombre,puesto,2); } } void imprimirpasaje(string name,int indice,int seccion) { cout<<"\n\n"; cout<<"================================================"<<endl <<" "<<endl <<" Pasaje "<<endl <<" "<<endl <<"Nombre: "<<name<<" "<<endl; if (1==seccion) cout<<"Sección: Primera Clase "<<endl; else cout<<"Sección: Segunda Clase "<<endl; cout<<" "<<endl <<"Puesto: "<<indice<<" "<<endl <<" "<<endl <<"================================================"; }
gracias