C++ Academy · درس

قراءة ملفات CSV وكتابتها

حلّل ملفات CSV سطرًا سطرًا، واكتب النتائج مرة أخرى إلى القرص.

الدرس 2 من 414 خطوة

قراءة ملفات CSV وكتابتها درس مجاني في C++ Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C++ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C++ Academy 4 دروس في المجموع.

ما هو CSV؟

CSV (القيم المفصولة بفواصل) هو تنسيق جدولي نصي عادي. كل سطر صف، وتفصل الفواصل بين الأعمدة. وهو بسيط، لكنه مليء بالحالات الخاصة.

الترويسات المطلوبة

استخدموا fstream للملفات، وsstream للتحليل.

#include <fstream>
#include <sstream>
#include <string>
#include <vector>

فتح ملف للقراءة

أنشئوا std::ifstream باستخدام مسار الملف. وتحقّقوا من نجاح فتحه.

std::ifstream file("data.csv");
if (!file) {
    std::cerr << "Cannot open file\n";
    return 1;
}

القراءة سطرًا سطرًا

استخدموا std::getline للتكرار على الصفوف.

std::string line;
while (std::getline(file, line)) {
    process(line);
}

تقسيم صف

استخدموا stringstream وgetline مع محدِّد لتقسيم كل صف إلى حقول.

std::vector<std::string> split(const std::string& line) {
    std::vector<std::string> fields;
    std::stringstream ss(line);
    std::string field;
    while (std::getline(ss, field, ',')) {
        fields.push_back(field);
    }
    return fields;
}

تخطّي الترويسة

اقرؤوا السطر الأول وتخلّصوا منه إذا كان يحتوي على أسماء الأعمدة.

std::string header;
std::getline(file, header);   // discard

تحليل الحقول ذات الأنواع

حوّلوا حقول السلاسل النصية إلى قيم ذات أنواع باستخدام std::stoi أو std::stod.

auto fields = split(line);
int id = std::stoi(fields[0]);
double price = std::stod(fields[2]);

كتابة CSV

استخدموا std::ofstream للكتابة. مرّروا القيم باستخدام << وأضيفوا الفواصل وأسطرًا جديدة.

std::ofstream out("results.csv");
out << "name,score\n";
out << "Ada,95\n";
out << "Bob,82\n";

إحاطة الحقول التي تحتوي على فواصل بعلامات اقتباس

إذا احتوى حقل على فاصلة، فأحيطوه بعلامتي اقتباس مزدوجتين. ولإدراج علامة اقتباس داخل الحقل، كرّروها.

std::string escape(const std::string& s) {
    if (s.find_first_of(",\"\n") == std::string::npos) return s;
    std::string r = "\"";
    for (char c : s) {
        if (c == '"') r += '"';
        r += c;
    }
    return r + "\"";
}

معالجة الأسطر الجديدة داخل الحقول

يمكن للحقول المقتبسة أن تمتد عبر عدة أسطر فعلية. يتتبّع قارئ CSV موثوق حالة الاقتباس عبر استدعاءات getline. وفي الحالات البسيطة، التزموا بالحقول غير متعددة الأسطر.

إغلاق الملف

تُغلق تدفقات الملفات تلقائيًا عند تدميرها (RAII). وللإغلاق الصريح، استخدموا file.close()، ولا حاجة إليه إلا إذا أردتم إعادة استخدام التدفق.

متى نستخدم مكتبة؟

بالنسبة إلى ملفات CSV المعقدة، التي تتضمن فواصل مقتبسة أو قيمًا متعددة الأسطر أو ترميزًا، استخدموا مكتبة مثل rapidcsv أو csv-parser. اكتبوا محلّلًا خاصًا بكم فقط للتنسيقات البسيطة والمضبوطة.

تحقّق سريع

ما التقنية التي تقسّم سطرًا عند الفواصل باستخدام المكتبة القياسية فقط؟

مراجعة

اقرؤوا CSV باستخدام std::ifstream وstd::getline، وقسّموا الصفوف باستخدام stringstream ومحدِّد الفاصلة، وحلّلوا الحقول ذات الأنواع باستخدام std::stoi وstod. استخدموا مكتبة حقيقية لملفات CSV المعقدة.

البدء مجانًا

تعلم C++ مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
51
الدروس
203

الأسئلة الشائعة

هل درس «قراءة ملفات CSV وكتابتها» مجاني؟

نعم — نص درس «قراءة ملفات CSV وكتابتها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C++ Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C++ Academy 4 دروس في المجموع.

ماذا ستتعلم في «قراءة ملفات CSV وكتابتها»؟

حلّل ملفات CSV سطرًا سطرًا، واكتب النتائج مرة أخرى إلى القرص. تتمرن على C++ Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C++ Academy؟

لا تُشترط خبرة سابقة. C++ Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «قراءة ملفات CSV وكتابتها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C++ Academy هذا؟

نعم. كل درس في C++ Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بناء حاسبة بسيطة لسطر الأوامر
  2. قراءة ملفات CSV وكتابتها
  3. لعبة تخمين الأعداد
  4. عداد تكرار الكلمات
← العودة إلى C++ Academy