Avatar ·

كيف تقرأ ملف ASCII بالكامل في std::string في C++؟

مرحبًا بالجميع! أنا مطور C++ مبتدئ واجهت مهمة تبدو بسيطة، لكنني لا أستطيع إيجاد حل أنيق. أحتاج إلى قراءة محتويات ملف نصي ASCII في كائن std::string، لمعالجته ككتلة بيانات واحدة (مثل تحليل الإعدادات أو التخزين المؤقت). حاليًا أستخدم هذا الكود الضخم: ```cpp #include #include #include std::string readFile(const std::string& filename) { std::ifstream file(filename); std::string content; char ch; while (file.get(ch)) { content += ch; } return content; } ``` هذا يعمل، لكني قلق بشأن أمرين: 1. **الأداء**. الإضافة المستمرة حرفًا حرفًا بطيئة جدًا. كل استدعاء لـ `operator+=` قد يسبب إعادة تخصيص للذاكرة. 2. **جمال الكود**. في Python يمكنني كتابة `open('file.txt').read()` في سطر واحد. هل لا يوجد شيء مشابه في C++ من المكتبة القياسية؟