Autor
|
Tema: Crear Variable en runtime con nombre propio (Leído 4,008 veces)
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
Hola que tal andan?¿ bueno tengo una duda,con el operador "new" y "delete" creamos variables dinamica en tiempo de ejecutación y las podemos destruir cuando se nos entoje,pero mi caso es otro ahora,necesito (si es posbibe) crear una variable en runtime pero mediante un control EDIT poner el nombre de dicha variable tmb,por ejemplo en el control edit escribir "Texto" i que se cree una variable que se llame Texto y que sea de tipo char (en este caso claro),osea que haga esto: char Texto;
lo de "Texto" es el nombre que yo escribo en el EDIT,como se puede hacer eso?¿ salu2
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Que yo sepa no se puede, tienen que ser nombres ya establecidos.
|
|
|
En línea
|
|
|
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
Lo imaginaba... gracias por tu respuesta
|
|
|
En línea
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
realmente es absurdo, el nombre de la variable es valido para ti, luego se transforma en una direccion de memoria, no tiene mucho sentido. ¿que intentas hacer?
|
|
|
En línea
|
|
|
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
Bueno no son mas que pruebas que realizo yo no intento hacer nada pero keria probar aver si se podria hacer eso i despues desde otro control edit pues indicarle el nombre de la variable a acceder y pues acceder a esa variable,,no es mas que eso,puede sonar tonteria pero necesito hacerlo,claro es una posicion de memoria pero nse como hacerlo
|
|
|
En línea
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
pues si quieres ponerle un nombre te haces una lista que contenga un campo char[N] y ahi pones el nombre.
struct tal { char Nombre[N] int valor otra *tal }
con eso podras tener tantas variables como quieras con su nombre.
|
|
|
En línea
|
|
|
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
Hola ctlon,perdona mi ignorancia,gracias a gente como tu aprendo por eso:)
es que no entiendo muy bien lo de la estructura,
es decir por ejemplo en lo de char[N] esa N que es lo que iria alli?¿
saludos
|
|
|
En línea
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
N es el numero de caracteres.
|
|
« Última modificación: 6 Agosto 2010, 00:00 am por ctlon »
|
En línea
|
|
|
|
carlitos_jajajajaja
Desconectado
Mensajes: 30
|
Puede que este codigo sea demasiado avanzado, pero es la unica forma que conozco para crear variables de usuario, lo comente lo mejor q pude, pero pregunta no mas si no entendiste aslgo Tendras que averiguar por el contenedor map de la libreria c++, que te permite crear "tablas" de datos #include <iostream> #include <map> //el contenedor map, investiga sobre el #include <string> using namespace std; typedef map<string, int> TablaVariables; void mostrar_menu(); /*Un par es un tipo que contiene 2 valores En este caso una cadena y un entero que es lo q necesita una variable: nombre y valor */ typedef pair<string, int> variable; int main() { TablaVariables variables_del_usuario; char opcion_elegida = 0; while(opcion_elegida != 4) { mostrar_menu(); cin >> opcion_elegida; cin.get(); switch(opcion_elegida) { case '1': { string nombre; /*Creamos un par con informacion sobre el elemento que agregaremos, y un valor bool que indica si la variable era nueva o repetida */ pair<TablaVariables::iterator, bool> resultado; cout << "Introduzca el nombre de la nueva variable" << endl; getline(cin, nombre); /*Usamos el metodo insert de map, con una variable con el nombre especificado y el valor por defecto de los enteros: 0 el resultado nos dira si la variable ya existia o no */ resultado = variables_del_usuario.insert(variable(nombre, 0)); if(resultado.second == true) { cout << "Variable agregada ;)" << endl; } else { cout << "ERROR!! Ya existe una variable con ese nombre" << endl; } break; } case '2': { string nombre; /*Contendra el valor de la variable buscada si esa variable no existe, sera igual a variables_del_usuario.end() */ TablaVariables::iterator resultado; cout << "Introduzca el nombre de la variable que quiere ver" << endl; getline(cin, nombre); resultado = variables_del_usuario.find(nombre); if(resultado == variables_del_usuario.end()) { cout << "ERROR!!! Esa variable no existe" << endl; } else { /*resultado es un iterador (algo asi comop un puntero) al tipo variable*/ cout << "El valor de la variable " << nombre << " es " << resultado->second << endl; cout << "desea modificarlo??? (y/n)" << endl; char yn; cin >> yn; if(yn == 'y') { int nuevovalor; cout << "Introduzca nuevo valor para " << nombre << endl; cin >> nuevovalor; variables_del_usuario[nombre] = nuevovalor; } } } } } } void mostrar_menu() { cout << "\n\n\n"; cout << "-----MENU-----" << endl; cout << "Presione 1 para agregar una variable" << endl; cout << "Presione 2 para ver el valor de una variable" << endl; cout << "Presione 3 para salir :) " << endl; cout << "introduzca su opcion " << endl; }
Espero que te sirva
|
|
|
En línea
|
Merodeo los foros, esperando el momento de decir algo inteligente...
Se necesita paciencia
|
|
|
|
|