البرمجة

كيفية عرض محتوى ملف في لغة C

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

الشيفرة التي قدمتها لديها عدة مشاكل تحتاج إلى التصحيح. دعنا نلخص الأخطاء ونصححها:

  1. المسار الذي تم تمريره إلى fopen غير صحيح. يجب أن يكون المسار صحيحًا للوصول إلى الملف. في حالتك، يبدو أنك أردت فتح ملف يسمى “f.txt” في الجذر “C:/”، لكن المسار المقدم غير صحيح.

  2. استخدام دالة fprintf لكتابة المحتوى إلى الملف بدلاً من استخدام printf لإخراج المحتوى إلى الشاشة.

  3. عند استخدام fprintf، يجب تمريرها إلى stdout لطباعة المحتوى على الشاشة بدلاً من تمرير الملف f.

  4. تحتاج إلى استخدام \n بدلاً من /n لطباعة سطر جديد.

  5. استخدمت دالة system("PAUSE") لتوقف البرنامج، هذه الطريقة غير محبذة. يمكنك ببساطة استخدام getchar() بدلاً منها.

الآن دعني أقوم بتصحيح الشيفرة لك:

c
#include #include int main() { FILE *f; char ch; // تصحيح المسار ليكون صحيحاً f = fopen("C:/f.txt", "r"); if (f == NULL) { printf("unable to open file\n"); return 0; } // استخدام printf بدلاً من fprintf // وتمرير stdout بدلاً من f do { ch = getc(f); printf("%c", ch); } while (ch != EOF); fclose(f); // استخدام \n بدلاً من /n printf("\n"); // استخدام getchar() بدلاً من system("pause") getchar(); return 0; }

الآن، يجب أن يعمل البرنامج كما توقعت. قم بتجربة الشيفرة المعدلة وأخبرني إذا كان هناك أي مشكلة أخرى تواجهك.

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

بالطبع، دعنا نكمل المقال بشرح أكثر تفصيلًا لكل جزء من الشيفرة وكيف يؤثر على سير البرنامج.

أولًا، نقوم بتضمين المكتبات اللازمة:

c
#include // لاستخدام الدوال المتعلقة بالإدخال والإخراج #include // لاستخدام الدوال المتعلقة بالذاكرة والعمليات الأساسية

ثم، نقوم ببدء تعريف الدالة الرئيسية main():

c
int main() { // تعريف متغير للملف FILE *f; // تعريف متغير لقراءة كل حرف من الملف char ch; // فتح الملف للقراءة f = fopen("C:/f.txt", "r"); // التحقق مما إذا كان بالإمكان فتح الملف بنجاح if (f == NULL) { printf("unable to open file\n"); return 0; // الخروج من البرنامج بشكل آمن }

في هذا الجزء، نقوم بفتح الملف “f.txt” للقراءة فقط ("r") في المسار المحدد “C:/”. ثم، نقوم بالتحقق مما إذا كان بالإمكان فتح الملف بنجاح، إذا لم يكن الفتح ناجحًا، يتم طباعة رسالة الخطأ وإيقاف تشغيل البرنامج.

بعد ذلك، نقوم بقراءة المحتوى من الملف وطباعته:

c
// قراءة وطباعة المحتوى حرفًا حرفًا do { ch = getc(f); printf("%c", ch); } while (ch != EOF);

نستخدم حلقة do-while لقراءة المحتوى حرفًا حرفًا من الملف باستخدام getc() ونطبع كل حرف باستخدام printf() حتى نصل إلى نهاية الملف (EOF).

أخيرًا، بعد قراءة المحتوى وإغلاق الملف، نضيف سطرًا جديدًا وننتظر استجابة المستخدم للإيقاف:

c
// إغلاق الملف بعد الانتهاء من القراءة fclose(f); // طباعة سطر جديد printf("\n"); // الانتظار لاستجابة المستخدم للإيقاف getchar(); return 0; // الخروج من البرنامج بشكل آمن }

هذا الجزء يغلق الملف بعد الانتهاء من قراءته، ثم يقوم بطباعة سطر جديد، وأخيرًا ينتظر إشارة من المستخدم باستخدام getchar() قبل إغلاق البرنامج بشكل آمن.

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

مقالات ذات صلة

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

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر