البرمجة

قراءة وطباعة أول 5 أعداد من ملف .txt في لغة C

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

أولًا وقبل كل شيء، يبدو أن هناك خطأ صغير في الطريقة التي تقوم بها في طباعة الأعداد. يجب أن يكون استخدام “%d” في printf لطباعة الأعداد الصحيحة، وليس “%c”. يرجى تصحيح هذا الخطأ.

c
printf("%d\n", num);

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

اليك تعديل للجزء المعني:

c
int count = 0; while (fscanf(fp, "%d", &num) == 1 && count < 5) { printf("%d\n", num); count++; }

هذا التعديل يضمن أنه سيتم قراءة وطباعة أول خمسة أعداد صحيحة فقط. يتم استخدام المتغير count لتتبع عدد الأعداد التي تم طباعتها.

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

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

عند التحقق من الشيفرة التي قدمتها، يظهر أنك استخدمت printf بشكل غير صحيح لطباعة الأعداد. يجب استخدام “%d” بدلاً من “%c” لأنك تقوم بطباعة أعداد صحيحة وليس أحرف. تصحيح الجزء المعني يبدو كما يلي:

c
printf("%d\n", num);

الآن، بالنسبة للجزء الخاص بالفحص من خلال command line arguments، قمت بتحقق من وجود معامل واحد على الأقل في argv باستخدام argc. ولكن يُفضل أيضًا إجراء فحص إضافي للتحقق من أن عدد المعاملات المتوقعة هو 2 (اسم البرنامج واسم الملف). يمكنك تحسين هذا الفحص كما يلي:

c
if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv[0]); return 1; }

هذا يضمن أن يتم تشغيل البرنامج بشكل صحيح عندما يتم تحديد اسم الملف فقط كواجهة سطر الأوامر.

أخيرًا، قمت بتحسين دورة الطباعة لتحديد طباعة أول خمسة أعداد فقط، مستخدمًا متغير count لتتبع عدد الأعداد المطبوعة.

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

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