Quiero saber como se convierte acá de un String a un Int

Iniciado por Damdrez92, 1 Junio 2011, 20:49 PM

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

Damdrez92

#include <iostream>
#include <vector>
#include <string>
using namespace std;

//*Variables
    int nBits, i;
    int representacion;
    string sNumero;
    int vNumero[0];
//========================================
main(){//*Metodo main
           
    cout <<"Ingrese el numero de bits"<<endl;
    cin >> nBits;
    int*vNumero = new int [nBits];//Asigno el tamaño del vector
    do {
    cout <<"Selccione esquema de representacion binaria"<<endl;
    cout <<"1. Binario sin signo"<<endl;
    cout <<"2. Binario con signo"<<endl;
    cin >> representacion;
    cout <<"Digite el numero binario"<<endl;
    cin >> sNumero;
    for(i=0;i<nBits;i++)
    {
         string k = sNumero.substr(i, i+1)
         vNumero=(int)(k);
    }
   
    for(i=0;i<nBits;i++)
    {
         cout << vNumero;
    }
   
    } while((representacion!=1)&(representacion!=2));
    switch (representacion)
    {
      case 1:
           cout <<"sin signo"<<endl;
           
           cin >> sNumero;
           break;
      case 2:
           cout <<"con signo"<<endl;
           
           cin >> sNumero;
           break;
    } 
}

Mr.Blue

#1
en c/c++ no existe el tipo de dato String.
Un string es una cadena en c la cadena se declara como, char.

char sNumero; // en este caso no es una cadena, solo toma un caracter.
char nombre[20]; //Esta si es una cadena de caracteres de logitud 19+'/0' que indica el fin del a cadena

Utiliza las etiquetas geshi para ver mejor el codigo


Código (cpp) [Seleccionar]
#include <iostream>
#include <vector>
#include <string>
using namespace std;

//*Variables
   int nBits, i;
   int representacion;
   string sNumero;
   int vNumero[0]; // cadena entera de 0 espacio?
//========================================
main(){//*Metodo main
         
   cout <<"Ingrese el numero de bits"<<endl;
   cin >> nBits;
   int*vNumero = new int [nBits];//Asigno el tamaño del vector
   do {
   cout <<"Selccione esquema de representacion binaria"<<endl;
   cout <<"1. Binario sin signo"<<endl;
   cout <<"2. Binario con signo"<<endl;
   cin >> representacion;
   cout <<"Digite el numero binario"<<endl;
   cin >> sNumero;
   for(i=0;i<nBits;i++)
   {
        string k = sNumero.substr(i, i+1)
        vNumero=(int)(k); //no podes inicializar asi k, lo que podes hacer es inicializar k arriba y pasar  o asi int k= vNumero; //en el lenguage c/c++ diferencia las mayus de las minus
   }
 
   for(i=0;i<nBits;i++)
   {
        cout << vNumero;
   }
 
   } while((representacion!=1)&(representacion!=2));// es &&
   switch (representacion)
   {
     case 1:
          cout <<"sin signo"<<endl;
         
          cin >> sNumero;
          break;
     case 2:
          cout <<"con signo"<<endl;
         
          cin >> sNumero;
          break;
   }
}


Como ves el tipo de dato no es reconocido. los tipos de datos son resaltados en azul.
Tendrias que pegarle una leida a las chichetas que hay varios libros que te pueden ayudar, hay muchos errores.

PD. referente a la acalarion en el codigo, no tiene sentido usar un char para ingresar un entero. Si ingresas una letra y haces lo que puse en el codigo en k, vas a tener el codigo ascii del caracter

Akai

#2
Cita de: Sr.Blanco en  1 Junio 2011, 21:03 PM
en c/c++ no existe el tipo de dato String.
Un string es una cadena en c la cadena se declara como, char.

Te recomiendo seriamente que te mires la teoría otra vez, sobretodo la de C++.

http://www.cplusplus.com/reference/string/string/

Por otro lado, para Damdrez92, no crees dos posts para lo mismo, ya te respondieron en el otro.

necesitas atoi, pero dado que atoi únicamente recibe cadénas de carácteres (char* / char[] ) antes necesitas obtener dicha cadena del string con el método c_str().
http://www.cplusplus.com/reference/string/string/c_str/

Queta

¿Hace falta comentar en un post doble y además no original :-\?
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

Mr.Blue

tenes razon akai, nunca utilize ni tenia idea de la existencia, me sono muy a java u otro leguaje, pero veo que es una clase de c++.

Citar¿Hace falta comentar en un post doble y además no original :-\?
No vi el segundo post cuando entre

Akai

Cita de: Sr.Blanco en  1 Junio 2011, 21:26 PM
tenes razon akai, nunca utilize ni tenia idea de la existencia, me sono muy a java u otro leguaje, pero veo que es una clase de c++.

Los strings como otros "containers" ya sean los vector, list, queue etc etc etc son parte de la STL, la Standard Template Library. Es a parte de la orientación a objetos, una de las mayores ampliaciones respecto a C.

No sólo tiene contenedores de datos, sino también algunos algoritmos como ordenación, búsqueda, selección...

Es bastante amplia, la verdad, y se basa en las plantillas para que se pueda prácticamente usar con todo tipo de datos que te de la gana siempre que tu le proporciones los operadores (operator de la clase o estructura) que necesite para el contenedor o algoritmo de turno.

chelita

todavia tienes el problema de convertir un tipo de dato string a int
si tu programas en visual c# 2005 como yo no se te hara dificil hacer lo siguiente

te voy a poner un ejemplo:
yo quiero configurar las cajas de texto para calcular el precio de un producto por la cantidad y que me aparezca el total en mi caja de texto

entonces hago lo siguiente
1.- dar doble clic a la caja de texto o textBox que cache tu resultado en este caso el total

2.-en el codigo vas a declarar las variables de tipo int

int total = 0;

3.- le pones el codigo para hacer la multiplicacion de la cantidad por el precio

total = int.parse(txtcantidad.text) * int.parse(txtprecio.text)

4.-para que el resultado de la multiplicacion se almacene en la caja de texto total, se hace lo siguiente

txttotal.text = total.toString();

Akai

Cita de: chelita en  1 Junio 2011, 22:11 PM
todavia tienes el problema de convertir un tipo de dato string a int
si tu programas en visual c# 2005 como yo no se te hara dificil hacer lo siguiente

te voy a poner un ejemplo:
yo quiero configurar las cajas de texto para calcular el precio de un producto por la cantidad y que me aparezca el total en mi caja de texto


No, no lo tiene. Y te aconsejo que no mezcles C# con C/C++, porque es intentar hacer pasar peras por melones. C# si eso acércalo a Java, de C/C++ únicamente tiene la letra y si eso la sintaxis, FIN.

A parte, estamos hablando de que el requerimiento era C++, no cambies el lenguaje.

Y unas recomendaciones:

A) Deberías actualizarte a Visual C# 2010, nadie te obliga a buscar el visual studio entero, tienes la edición express para C# gratuita. En 5 años ha cambiado mucho.

B) Intenta no postear en temas ya resueltos para no aportar nada, más si lo que pones va a confundir.

C) "programando" con textboxes no se aprende demasiado, que se diga.