Boost.Lexical_Cast en C++

Boost.LexicalCast, que se define en la biblioteca «boost/lexical_cast.hpp», proporciona un operador de conversión, boost::lexical_cast, que puede convertir números de strings a tipos numéricos como int o double y viceversa. boost::lexical_cast es una alternativa a funciones como std::stoi() , std::stod() y std::to_string() , que se agregaron a la biblioteca estándar en C++11. Ahora veamos la Implementación de esta función en un programa. Ejemplos:

Conversion
integer -> string
string- > integer
integer -> char
float- > string

Excepciones asociadas: si falla una conversión, se lanza una excepción de tipo bad_lexical_cast, que se deriva de bad_cast. Lanza una excepción porque el flotante 52.50 y la string «GeeksforGeeks» no se pueden convertir a un número de tipo int. 

CPP

// CPP program to illustrate
// Boost.Lexical_Cast in C++
#include "boost/lexical_cast.hpp"
#include <bits/stdc++.h>
using namespace std;
using boost::lexical_cast;
using boost::bad_lexical_cast;
int main() {
 
  // integer to string conversion
  int s = 23;
  string s1 = lexical_cast<string>(s);
  cout << s1 << endl;
 
  // integer to char conversion
  array<char, 64> msg = lexical_cast<array<char, 64>>(45);
  cout << msg[0] << msg[1] << endl;
 
  // string to integer conversion in integer value
  int num = lexical_cast<int>("1234");
  cout << num << endl;
 
  // bad conversion float to int
  // using try and catch we display the error
  try {
    int num2 = lexical_cast<int>("52.20");
  }
 
  // To catch exception
  catch (bad_lexical_cast &e) {
    cout << "Exception caught : " << e.what() << endl;
  }
 
  // bad conversion string to integer character
  // using try and catch we display the error
  try {
    int i = lexical_cast<int>("GeeksforGeeks");
  }
 
  // catching Exception
  catch (bad_lexical_cast &e) {
    cout << "Exception caught :" << e.what() << endl;
  }
 
  return 0;
}

Producción:-

23
45
1234
Exception caught : bad lexical cast: source type value could not be interpreted as target
Exception caught :bad lexical cast: source type value could not be interpreted as target

Referencia: – http://www.boost.org/

Publicación traducida automáticamente

Artículo escrito por ajay0007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *