Dev - C++ - Convertir char a tipo de datos

 
Vista:

Convertir char a tipo de datos

Publicado por Luis (8 intervenciones) el 06/10/2007 15:42:36
Hola a todos, tengo una duda que no sé si se podrá o no resolver fácilmente. La cuestión es la siguiente: en C++ yo quiero coger por teclado una entrada determinada que introduzca el usuario, en concreto una cadena. Este valor lo puedo almacenar por ejemplo en una variable de tipo CHAR, de la siguiente manera:

char *cadena;

Pues bien, lo que pretendo es que el valor que contiene esa variable de tipo CHAR cadena, convertirla a un tipo de datos. Me explico, lo que quiero obtener es que si por ejemplo el usuario introduce por teclado la cadena HOLA, que HOLA sea un tipo de datos, de la misma forma que si yo pusiera lo siguiente:

hola cad;

funcionara. No sé si existirá alguna función o no que te realice esta conversión de manera rápida, o si se puede hacer o no, pero el tema es que lo quiero conseguir para la comunicación con EcosimPro, de modo que pueda utilizar el mismo código para varios experimentos, para todos los que quiera, y no tener que hacer un código concreto para cada experimento o para cada partición que tengamos.

Espero haberme explicado correctamente, y que alguien me pueda hechar una mano en el caso en el que exista o no alguna función o alguna manera para poder solucionar mi duda, ya que es importante y urgente que alguien me pueda hechar un cable en este tema, se lo agradecería muchísimo. Si no existe una función, o ninguna forma de hacerlo, es bueno saberlo para avanzar en otra línea o pensar algunas otras estrategias.

Gracias de antemano. Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Convertir char a tipo de datos

Publicado por Leo (3 intervenciones) el 07/10/2007 02:15:10
Puedes crear una clase, y sobrecargar el operador << por ejemplo, y luego en vez de hacer cin << variable, haces tipo << variable y que en el interior contenga una llamada a << de cin.

tipo :: tipo & operator<<(char * cad)
{
/* procesar cadena */

cin << variable;

}

Esa es una forma elegante de hacerlo
Si no sabes clases y sobrecargas... www.conclase.net tienes manuales buenos.
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir char a tipo de datos

Publicado por Luis (8 intervenciones) el 07/10/2007 15:20:42
Hola a todos de nuevo, posteo de nuevo porque sigo teniendo la duda de cómo puedo llevarlo a cabo. Es urgente y necesito tenerlo implementado en breve, por eso mi insistencia. Os lo vuelvo a explicar por si no habéis cogido bien la idea que tengo en mente.

El tema es el siguiente, yo quiero que el valor que una variable de tipo
cadena tiene almacenado sea convertido a un tipo de datos. Es decir, me
gustaría poder encontrar solución a que si el usuario introduce por
teclado "hola", esa cadena se considere como un tipo de dato, al igual que
lo puede ser por ejemplo el tipo "int", "float", etc. ¿Me entendéis ahora?
De esa forma, yo puedo declarar un tipo de datos a petición del usuario, y
mi programa sería genérico, pudiéndose usar para cualquier valor indicado
por el usuario, y no solo para uno concreto. Así, introduciendo "hola" por
teclado, sería válido hacer la siguiente declaración:

hola id;

y no daría error al compilar el código en C++.

Esa es la idea que tengo en mente, pero no tengo muy claro si existe o no
solución al respecto.

Me gustaría poder encontrarla si existiera, lo antes posible. Si tenéis
alguna sugerencia, idea, o simplemente conocéis con certeza que lo que pido
no se puede implementar, os agradecería que me lo comunicárais para poder
saber en que línea debo seguir trabajando, si continuar con la idea que
tengo, o por el contrario cambiar la estrategia a seguir, ya que esa idea
no se pueda realizar.

Muchas gracias de antemano.

Un saludo cordial.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir char a tipo de datos

Publicado por leo (3 intervenciones) el 08/10/2007 04:21:16
buenoo.. yo mas o menos entiendo...
En c++ existen los templates o plantillas. Eso te ayuda a definir tipos genéricos.

template <typename T>
class tipo{

public:
T A();
T B();

private

T * a;
T & b;
}

int main()
{
tipo<int> A; /*declaras el objeto A, con T=int*/
tipo<float> B;
}

Ahora, no entiendo bien lo que pretendes, es decir, solo poniendo una especie de opcion preguntando el tipo de dato que el usuario necesita podras elegir dinamicamente el tipo del objeto, no es posible que automaticamente el ordenador se de cuenta del tipo (creo)

En la misma pagina que te dije antes, tenes una clase de templates.
Que te ayude,
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir char a tipo de datos

Publicado por Luis (8 intervenciones) el 08/10/2007 16:02:26
Exactamente lo que pido es lo que has comentado, que una cadena introducida por teclado por el usuario se pueda pasar a un tipo de dato. Esto lo busco debido a que estoy intentando crear una DLL mediante JNI, para la comunicación entre JAVA y una DLL en la que se lleven a cabo funciones del programa EcosimPro. En estas funciones, se llevan a cabo simulaciones de experimentos, asignación de valores a las variables de tales experimentos, etc. Para ejecutar un experimento correctamente, hay que crear una instancia de un objeto, el cual ese objeto se denomina con el mismo nombre que la partición del experimento (para todo aquel que entienda de EcosimPro, sabrá de lo que hablo). Si para ejecutar un experimento de una determinada partición tengo que indicar explícitamente el nombre de la partición, evidentemente solo podré realizar experimentos de una partición concreta con un código determinado en JNI. Por ejemplo:

equation_default experimento;

siendo equation_default el nombre de la partición, que es lo que yo quiero que introduciéndolo el usuario por pantalla, se convierta de cadena a tipo de dato.

Mi idea por tanto es indicar al usuario que debe introducir una cadena de texto por teclado, correspondiente a la partición sobre la cual desea llevar a cabo el experimento. Con esa cadena, convertirla a tipo de dato, de modo que pueda crear una instancia de ese objeto, y poder realizar el experimento de manera genérica, para cualquier partición, sin tener que cambiar el código cada vez que quiera cambiar la partición del experimento.

¿Se entiende mejor ahora? Sé que no me he explicado correctamente, ni como debiera, pero es que por foro también es un poco difícil especificar con detalles estos temas, ya que son algo complejos de entender....

De todas maneras Leo, gracias por tu ayuda y por intentar hecharme un cable, a ver si tienes alguna idea sobre lo que hablo, ya que es un tema que me interesa resolver lo antes posible....

Muchas gracias de antemano.

PD: en caso de que no me entendáis, agregadme a [email protected], y a ver si nos entendemos de mejor manera.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir char a tipo de datos

Publicado por leo (3 intervenciones) el 09/10/2007 04:21:50
jajaj Que responda otro!!!! Esta interesante la duda q tienes ... ...

Ahora te pregunto, cuando tomes la cadena por el teclado, deberías utilizar alguna función como cin (equivalente a scanf). Si en vez de usar esa funcion, haces lo q en mi primera respuesta, no podrias lograr tu objetivo??
A ver.. el usuario va a ingresar la cadena, y tu te "inventas" un cin, sobrecargando el operador... y procesas la cadena que te ingresa. Ahora debrias organizar todo en clases, y usar polimorfismo. Ahora me interesa como resolver esto... en principio lo haria asi como dije. Me adhiero a la duda.
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir char a tipo de datos

Publicado por SuperIndio (17 intervenciones) el 10/10/2007 04:34:15
Creo que entiendo lo que pretendes... estas tratando de decir que quieres detectar si lo que inregso el usuario es algunos de los tipos que tenes definido dentro del .exe o ejecutable (entiendase definido como el nombre) ?????
Si es asi creo que definido una macro en la cual definas un tipo con la variable
que contenga lo que ingreso el user y capturando el error... si da error no es tipo definido
y si no da error es porque es un tipo de dato....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir char a tipo de datos

Publicado por SuperIndio (17 intervenciones) el 10/10/2007 04:36:28
Creo que entiendo lo que pretendes... estas tratando de decir que quieres detectar si lo que inregso el usuario es algunos de los tipos que tenes definido dentro del .exe o ejecutable (entiendase definido como el nombre) ?????
Si es asi creo que definido una macro en la cual definas un tipo con la variable
que contenga lo que ingreso el user y capturando el error... si da error no es tipo definido
y si no da error es porque es un tipo de dato....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir char a tipo de datos

Publicado por Luis (8 intervenciones) el 10/10/2007 23:03:41
Hola a todos, pues en realidad no pretendo lo que dices SuperIndio, pero de todas maneras gracias por la idea. El problema lo he resuelto de otra manera, así que éste problema que comentaba al principio ya no me hace falta encontrarle solución, porque he visto que es casi imposible encontrársela.

El tema ahora es que necesito lincar una librería en la compilación, y no sé cual es el comando necesario para ell. Uso el compilador cl, el del visual c++, y no sé exactamente qué comando hay que usar. Sólo con eso ya tendría todo el problema resuelto.

Espeor que me podáis echar una mano.....Gracias

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir char a tipo de datos

Publicado por Sergio (1 intervención) el 12/10/2007 23:03:25
Hola el problema parece interesante pero seria bueno(si tienes tiempo) que postearas como se soluciono el problema...
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar