Debe haber alguna forma!! No se si la vida real la guarda el server
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
Clase objeto();
Clase *objeto = new Clase();
Cita de: xiruko en 30 Septiembre 2013, 04:15 AM
Quizás antes de programar deberías practicar un poco de comprensión lectora...
Para intentar ayudar, si el formato de las opciones siempre es de la misma manera como "opcionX" u "OpcionX" o lo que sea, puedes pasarle un puntero al inicio del número en la cadena a la función atoi() de esta manera:#include <stdlib.h>
char cadena[]="opcion123";
printf("%d\n", atoi(cadena+6));output: 123
Claro que si el formato entre opciones cambia entonces ya no sirve. Si no cambia, podrías hacer lo que dijo eferion para ahorrarte un switch-case tan grande y usar punteros a función. Por ejemplo:// prototipos de las funciones
int funcion_1(void);
int funcion_2(void);
//...
// dentro de main
int (*f[])(void)={funcion_1, funcion_2}; // array de funciones
char cadena[]="opcion2";
int index=atoi(cadena+6); // index de la funcion a ejecutar segun la opcion
f[index](); // se ejecuta la funcion
Y bueno, de esta manera ganarías bastante rapidez aunque se perdería algo de legilibilidad en el código.
Saludos.
Cita de: eferion en 30 Septiembre 2013, 08:29 AM
Como dice Xiruko, practica comprensión lectora... y te lo digo más que nada por esto ( lo he aislado para que te sea más sencillo de localizar ):
Resumido: si el programa que te pasa los parámetros no es tuyo, te tienes que adaptar, no hay otra. Sin embargo yo sigo pensando que el mecanismo empleado es malo con ganas.
Y tranquilo, procuraré no responderte en el futuro, al menos hasta que no aprendas a leer lo que la gente se molesta en escribirte.
Cita de: eferion en 29 Septiembre 2013, 17:30 PM
Aunque reciba parámetros de un programa externo... estos parámetros tendrán que estar previamente identificados... no pueden ser aleatorios.
Cita de: eferion en 29 Septiembre 2013, 17:30 PM
Si el programa externo envía un parámetro que diga "opcion1"... realmente me parece un poco absurdo, pero necesitarías que la función strToInt fuese capaz de interpretar esa cadena para devolver un int coherente ( por ejemplo un 1 para la opción planteada )... pero en los case tienes que poner valores fijos como te he indicado...
Cita de: eferion en 29 Septiembre 2013, 17:30 PM
Tu piensa que los programas son algo estático, no son capaces de razonar, tú eres el que le dicta lo que ha de hacer y ellos simplemente te obedecen... tu tienes que saber que "opcion1" se ha de convertir en un int valido y eso te obliga a saber de antemano el formato de los parámetros que ha de recibir tu programa.