[C con Clase] Pilas
Steven Davidson
srd4121 en njit.edu
Lun Abr 27 21:39:29 CEST 2009
Hola José,
Jose Villafañe wrote:
>
> tomare en cuenta lo de las variables locales, gracias!
>
>
> por ahora dejo el codigo completo que hice....(es en devC++ por
> cierto)
Veamos la parte que interesa.
> int main()
> {
> char opc;
> do
> {
> system("cls");
> cout << "\t \t \t \tProyecto 2: " << endl;
> cout << "\n";
>
> cout << "1.- Arreglo" << endl;
> cout << "\n";
>
> cout << "2.- Pilas" << endl;
> cout << "\n";
>
> cout << "3.- Colas" << endl;
> cout << "\n";
>
> cout << "4.- Salir" << endl;
> opc=getch( );
> switch(opc)
> {
> case '1':
> Arreglo( );
> break;
> case '2':
> Pila( );
Aquí, tienes el problema. No incluyes 'break' para salirte de la
estructura 'switch/case'. Por lo tanto, al realizar el menú de la pila,
la ejecución continúa invocando 'Cola()'.
Con la opción '3', no tenemos mayores problemas, porque es el último
caso listado y por tanto seguiremos ejecutando fuera de 'switch/case'.
> case '3':
> Cola( );
> }
> }while (opc!='4');
'main()' debe retornar un entero. Por convenio, se elige 0 (cero) para
indicar que el programa ha terminado correctamente.
> }
También veo que usas 'gets()'. Esta función es peligrosa, ya que no
puedes indicar la cantidad de caracteres que tiene la cadena. Como estás
usando C++, sugiero usar 'getline()'. Esto es,
cin.getline( AUX->nombre, 20 );
Espero haber aclarado la inquietud.
Steven
Más información sobre la lista de distribución Cconclase