ayuda en un menu en switch

Iniciado por poisonkhriz, 20 Marzo 2011, 02:08 AM

0 Miembros y 3 Visitantes están viendo este tema.

<<<-Basura->>>

jejeje dejemolo hay no discutamos mas ... no llegaremos a nada ... cada quien tiene su forma ya entendi que si se pasa de compilador ERROR !.. XDD

lei una de tus respuestas en otro post.. mensionastes Programación con el estándar ISO y la Biblioteca de Plantillas .... no lo tenes hay para descargarlo.. jeje ;)
<<<--Basura-->>>

Akai

No, no lo tengo. Lo tengo en papel. Imagino que igual estará por ahí si buscas en google.

Por otro lado, esto es un foro más o menos serio, no el patio del colegio, para que vengas con un "puss puss puss.... ¬¬ pruevalo.... :'( ...." como si le hablases a tu colega o por el msn a dios sabe quien

Samael.Black

#22
Cita de: poisonkhriz en 20 Marzo 2011, 07:01 AM
si exacto algo asi pero sin el iostream todavia no veo eso en clase  :xD

La libreria iostream es usada mas que nada en C++, en C seria la libreria stdio.h y en ves de cout, cin y endl, usarias printf, scanf y /n...

Cita de: poisonkhriz en 20 Marzo 2011, 07:01 AM
ahi llamas la funcion en el case y me imagino que cuando se termina el switch, llamas de nuevo la funcion para ejecutar el caso....
Si no me equvico con esto quieres decir que cuando realize la funcion de los case segun el correspondiente... vuelva a imprimir el menu... eso lo puedes hacer con un do while. ejemplo:
#include <iostream>
#include <stdlib.h>
void saludar(){ std::cout << "Hola mundo" << std::endl; }
void adios(){ system("exit"); }

int main()
{
int accion = 0;
empezar:
do{ // <-- Inicio de declaración de do
std::cout << "MENU:" << std::endl;
std::cout << "[1] Ir a la funcion." << std::endl;
std::cout << "[2] Salir del programa." << std::endl;
std::cin >> accion;

switch(accion)
{
case 1: saludar();
break;
case 2: adios();
break;
default: system ("cls"); std::cout << "Error valor no reconocido" << std::endl;
goto empezar;
}
}
while(accion == 1); <-- condición de declaración
return 0;
}

Akai

Hay dos cosas que no tienen sentido:

Código (cpp) [Seleccionar]
void adios(){ system("exit"); }

system(exit) para?

Código (cpp) [Seleccionar]
void adios(){ exit(0);}


En el switch
Código (cpp) [Seleccionar]
default: system ("cls"); std::cout << "Error valor no reconocido" << std::endl;
goto empezar;


goto para? ya tienes un while. Si te montas bien la condición el ogot sobra. Y usar goto no es aconsejable

Y luego un apunte, las llamadas a system, mejor evitarlas.

Samael.Black

#24
Cita de: Akai en 20 Marzo 2011, 18:41 PM
Hay dos cosas que no tienen sentido:

Código (cpp) [Seleccionar]
void adios(){ system("exit"); }

system(exit) para?

Código (cpp) [Seleccionar]
void adios(){ exit(0);}


En el switch
Código (cpp) [Seleccionar]
default: system ("cls"); std::cout << "Error valor no reconocido" << std::endl;
goto empezar;


goto para? ya tienes un while. Si te montas bien la condición el ogot sobra. Y usar goto no es aconsejable

Y luego un apunte, las llamadas a system, mejor evitarlas.
Si lose xD error mio xD en si solo quería explicarle lo del do while... y no me di cuenta de ello xD

Hayi esta el codigo como deberia ser:
#include <iostream>
#include <stdlib.h>
void saludar(){ std::cout << "Hola mundo" << std::endl; }
void adios(){ exit(0); }

int main()
{
int accion = 0;
do{
std::cout << "MENU:" << std::endl;
std::cout << "[1] Ir a la funcion." << std::endl;
std::cout << "[2] Salir del programa." << std::endl;
std::cin >> accion;

switch(accion)
{
case 1: saludar();
break;
case 2: adios();
break;
default: system ("cls"); std::cout << "Error valor no reconocido" << std::endl;
}
}
while(accion < 2 || accion > 2);
return 0;
}


Por cierto lo de exit(0) no me la savia... he aprendido algo nuevo xD

<<<-Basura->>>

Cuando trabajes con iostream ... te aconsejo que debajo de las librerias pon
using namespace std;

esto es para no poner tantos std jeje std::cout, std cin

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;
void main(){
     cout<<"hola";
}
<<<--Basura-->>>

Samael.Black

Cita de: rasielunderwar en 20 Marzo 2011, 19:19 PM
Cuando trabajes con iostream ... te aconsejo que debajo de las librerias pon
using namespace std;

esto es para no poner tantos std jeje std::cout, std cin

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;
void main(){
     cout<<"hola";
}


Si eso lose... pero como el código no era muy extenso, lo hice manualmente... pero gracias por el punto...

Akai

De hecho, queda un poco en entredicho que por ahorrarte unos cuantos golpes de tecla sea conveniente usar el espacio de nombres estándar.

Para programas pequeños, en los que trabajas con la biblioteca estándar y poco más, no hay demasiado problema, pero por ejemplo, hay bibliotecas que incluyen su propio espacio de nombres, y entonces, puede crear confusión.

El camino fácil no suele ser el mejor.