البرمجة

كيفية تخزين نتائج دالة في مصفوفة باستخدام C++

لتحقيق هذا، يجب أن تعيد الدالة getWords نوع البيانات المناسب لتخزين النصوص الجديدة التي تقوم بإنشائها. في الكود الحالي، يبدو أن getWords تقوم بإرجاع نص (string)، ولكنها تحتاج إلى تعديل لتعيد قائمة من النصوص. إذا كان الهدف هو تخزين النصوص المنفصلة التي تم إنشاؤها بواسطة getWords في مصفوفة، يمكنك استخدام vector بدلاً من مصفوفة النصوص.

قم بتعديل الدالة getWords لتعيد vector بدلاً من string واستخدمها كما يلي:

cpp
#include #include #include #include using namespace std; vector getWords(const string& fileName) { vector words; // افتح الملف واقرأ النصوص وأضفها إلى القائمة ifstream file(fileName); string word; while (file >> word) { words.push_back(word); } return words; } int main() { vector wordsList = getWords("theFile.dat"); for (const auto& word : wordsList) { cout << word << endl; } return 0; }

هذا الكود يقوم بفتح الملف “theFile.dat” وقراءة النصوص الفردية، ومن ثم يضيف كل نص إلى vector من النصوص. تحقق من أن الملف “theFile.dat” موجود في نفس مجلد البرنامج أو قم بتوفير المسار الكامل للملف.

المزيد من المعلومات

بالتأكيد! في الكود الذي قمت بتقديمه، يتم استدعاء دالة getWords("theFile.dat") مرتين، مما يعني أنه يجب عليها أن تعيد قيمة string كل مرة. ولكن، في المصفوفة wordsList، تحتاج إلى تخزين قائمة من النصوص، وليس قيمة واحدة. هذا ما يؤدي إلى الخطأ “no suitable constructor”، حيث لا يمكن إنشاء مصفوفة من string باستخدام قيمة string واحدة.

لحل هذه المشكلة، يمكنك تعديل دالة getWords لتعيد vector بدلاً من string، حيث يمكن لـ vector تخزين قائمة من النصوص. وبذلك، يمكنك استخدام قيمة getWords("theFile.dat") مباشرة لتهيئة vector بدون الحاجة لبناء المصفوفة يدوياً.

زر الذهاب إلى الأعلى