Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2015, 12:37
dmorill
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 9 años, 10 meses
Puntos: 1
Diferenciar entrada de datos por consola

Hola amigos, mi duda es respecto a poder identificar si el usuario ha introducido strings o números, y de ser así meterlos en variables enteras. He leído que la librería sstream puede ayudar.

He hecho un pequeño programa pero este solo reconoce si el usuario a introducido un 's' o números. y me gustaría mejorarlo para que reconozca cualquier string.

Código C++:
Ver original
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.     double a = 0, b = 0, c = 0; string sal; istringstream o;
  8.     while (true){
  9.         cout << "Digitar los valores de 'a' y 'b' (positivos):" << endl;
  10.         sal.clear();
  11.         o.clear();
  12.         getline(cin, sal, '\n');
  13.         o.str(sal);
  14.         if (sal.back() == 's'){
  15.             break;
  16.         }else{
  17.             o >> a >> b;
  18.             try{
  19.                 if (b == 0) throw "b es cero.";
  20.                 if (a < 0) throw "a es menos que cero.";
  21.                 if (b < 0) throw "b es menor que cero.";
  22.                 c = a / b;
  23.                 cout << "Resultado: " << c << endl << endl;
  24.             }
  25.             catch (const char *err){
  26.                 cout << "Error: " << err <<  endl << endl;
  27.             }
  28.         }
  29.     }
  30.     cout << endl << "Presione cualquier tecla para salir....";
  31.     cin.sync();
  32.     cin.get();
  33.     return 0;
  34. }

saludos