Avatar ·

如何在C++中将std::string转换为int(不丢失数据)?

大家好!我是C++新手,正在编写一个用于商品管理的小程序。数据来自文本文件,其中商品价格以字符串形式存储(例如"1500")。我需要对这些数字执行算术运算:加总价格、计算折扣等。但当我尝试将两个字符串相加时,编译器报错。 以下是我的示例代码: ```cpp #include #include int main() { std::string price1 = "2500"; std::string price2 = "1800"; int total = price1 + price2; // 错误! std::cout << "Total: " << total << std::endl; return 0; } ``` 我明白字符串不能像数字一样相加,但如何正确地将std::string转换为int?需要程序即使字符串中包含垃圾字符(例如"1500abc")或非数字字符也能稳定运行。我试过atoi(),但听说这是过时且危险的方法。请告诉我C++中现代且安全的转换方法。 提前感谢!