كيفية تحويل std::string إلى int في C++ (بدون فقدان البيانات)?
مرحباً بالجميع! أنا مبتدئ في 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++.
شكراً مسبقاً