martes, 26 de mayo de 2015

23 - Tutorial de C++ en español - sstream (Convertir de string a números)




En este capítulo del Tutorial de C++ veremos como podemos transformar los valores de una variable string a un tipo de datos numérico como pueden ser float o int con la ayuda de la librería sstream.

de-string-a-number.cpp

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

void init()
{
 cout << "Seleccione la operacion: + - / * : ";
 string operacion;
 getline(cin, operacion);
 if (operacion == "+" || operacion == "-" || operacion == "/" || operacion == "*")
 {
    cout << "Introduce el primer numero: ";
    string n1;
    getline(cin, n1);
    cout << "Introduce el segundo numero: ";
    string n2;
    getline(cin, n2);
    
    float num1, num2;
    if (istringstream(n1) >> num1 && istringstream(n2) >> num2)
    {
      if (operacion == "+") cout << "Total: "  << num1+num2 << endl;
      else if (operacion == "-") cout << "Total: " << num1-num2 << endl;
      else if (operacion == "/") cout << "Total: " << num1/num2 << endl;
      else if (operacion == "*") cout << "Total: " << num1*num2 << endl;
      cout << "Quieres continuar? si - no : ";
      string opcion;
      getline(cin, opcion);
      if (opcion == "si") init();                  
    }
             
 } 
 else init();   
}

int main(int argc, char *argv[])
{
 init();
 system("PAUSE");
 return 0;
}