Comment convertir std::string en int en C++ (sans perte de données) ?
Bonjour à tous ! Je suis débutant en C++ et j'écris un petit programme de gestion de stock. Les données proviennent d'un fichier texte où le prix d'un article est stocké sous forme de chaîne (par exemple, "1500"). J'ai besoin d'effectuer des opérations arithmétiques sur ces nombres : additionner les prix, calculer une remise, etc. Mais le compilateur génère une erreur lorsque j'essaie d'additionner deux chaînes.
Voici mon exemple de code :
```cpp
#include
#include
int main() {
std::string price1 = "2500";
std::string price2 = "1800";
int total = price1 + price2; // Erreur !
std::cout << "Total: " << total << std::endl;
return 0;
}
```
Je comprends que les chaînes ne peuvent pas être additionnées comme des nombres, mais comment convertir correctement std::string en int ? Il faut que le programme fonctionne sans plantage, même si la chaîne contient des déchets (par exemple, "1500abc") ou des caractères non numériques. J'ai essayé atoi(), mais j'ai lu que c'est une méthode obsolète et dangereuse. Veuillez m'indiquer des méthodes modernes et sûres de conversion en C++.
Merci d'avance