Avatar ·

كيفية تحويل std::string إلى int في C++؟

مرحباً بالجميع! أنا مبتدئ في C++ وأكتب برنامجاً بسيطاً يقرأ رقمًا من ملف ويقوم بعمليات حسابية عليه. لدي std::string تحتوي على قيمة رقمية، مثلاً "123". أحتاج إلى تحويل هذه السلسلة إلى int لأتمكن من جمعها مع متغير آخر. المشكلة هي أنني لا أستطيع ببساطة كتابة int number = myString; — المترجم يظهر خطأ. جربت استخدام stoi()، لكنني لست متأكداً من أنها الطريقة الصحيحة، خاصة إذا كانت السلسلة تحتوي على أحرف زائدة (مثل مسافات أو حروف). كما سمعت أن هناك atoi()، لكن يقولون إنها قديمة وخطيرة. أرجو إرشادي حول كيفية تحويل std::string إلى int بشكل صحيح وآمن في C++ الحديث (يفضل C++11 وما بعده). أحتاج مثالاً مع معالجة الأخطاء حتى لا يتعطل البرنامج إذا كانت السلسلة تحتوي على بيانات غير صالحة. شكراً مسبقاً! إليك الكود الحالي الذي لا يعمل: ```cpp #include #include int main() { std::string s = "456"; ```