Cómo convertir std::string a int en C++ (¿sin pérdida de datos?)
¡Hola a todos! Soy nuevo en C++ y estoy escribiendo un pequeño programa para la gestión de productos. Los datos provienen de un archivo de texto, donde el precio del producto se almacena como una cadena (por ejemplo, "1500"). Necesito realizar operaciones aritméticas con estos números: sumar precios, calcular descuentos, etc. Pero el compilador da un error cuando intento sumar dos strings.
Aquí está mi código de ejemplo:
```cpp
#include
#include
int main() {
std::string price1 = "2500";
std::string price2 = "1800";
int total = price1 + price2; // ¡Error!
std::cout << "Total: " << total << std::endl;
return 0;
}
```
Entiendo que los strings no se pueden sumar como números, pero ¿cómo convertir correctamente std::string a int? Necesito que el programa funcione sin fallos, incluso si la cadena contiene basura (por ejemplo, "1500abc") o caracteres no numéricos. Probé atoi(), pero leí que es un método obsoleto y peligroso. Por favor, indíquenme métodos modernos y seguros de conversión en C++.
Gracias de antemano