• 0

ما هي التعليمات التي تستخدم للكتابة على الملفات النصية و القراءة منها في لغة سي؟

السلام عليكم ..اريد ان اعلم ماهي التعليمات التي تستخدم للكتابة على الملفات النصية و القراءة منها وكذلك في الملفات الثنائية  بلغة سي. 

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

بالنسبة للكتابة إلى الملفات النصية:

1- يجب تضمين المكتبة stdio.h.

2- ثمّ نعرّف مؤشّر للكائن FILE.

3- نفتح الملف باستخدام الدالة fopen الذي يتطلب وسيطين: مسار الملف، بالإضافة إلى طريقة الفتح (نضع الخيار w للكتابة فقط، والخيار +w للكتابة مع القراءة على أن يتم مسح محتويات الملف في حال كان موجودًا أو إنشاء واحد جديد إن لم يكن كذلك).

4- يمكن كتابة أي نص ترغبه باستخدام التابع fprintf وهو يطلب وسيطين أيضًا: المؤشّر إلى الملف الذي فتحناه قبل قليل، بالإضافة إلى النص المراد كتابته إلى الملف.

5- إغلاق الملف باستخدام الدالة fclose التي تتطلّب مؤشّر الملف الذي فتحناه سابقًا.

بالنسبة للقراءة من  الملفات النصية:

1- نفس الخطوة 1 السابقة.

2- نفس الخطوة 2 السابقة.

3- نفس الخطوة 3 السابقة مع الانتباه إلى الخيار r يعني قراءة فقط، والخيار +r يعني القراءة والكتابة معًا.

4- يمكن قراءة أي نص باستخدام الدالة fgets وهي تتطلّب ثلاثة وسائط: الأوّل هو مؤشر الملف الذي فتحناه، والثاني هو كمية المحارف المراد قراءتها، والثالث هو متغيّر (يكون عادة مؤشّر) لكي تستطيع الدلة fgets تخزين النص الذي تقرؤه من الملف ضمنه.

5- نفس الخطوة 5 السابقة.

إليك الآن البرنامج التالي الذي ينشئ ملفًا نصيًا اسمه test.txt ضمن المجلد tmp (يجب أن تنشئ هذا المجلد) ويكتب إليه النص "My name is saeed\n" ثم يقرأ نفس النص مرة أخرى ويطبع النتيجة على الشاشة، ومن ثم يغلق الملف:

#include <stdio.h>

main() {
    FILE *fp;
    char buff[255];
    
    fp = fopen("/tmp/test.txt", "w+");
    fprintf(fp, "My name is saeed\n");
    
    fseek(fp, 0, SEEK_SET);
    
    fgets(buff, 255, fp);
   
    printf("%s\n", buff );
    
    fclose(fp);
}

 

لاحظ المتغيّر buff الذي سيستخدم كوسيلة تخزين للنص المقروء من الملف.

 

ملاحظة: تقرأ الدالة fgets نفس عدد المحارف المعيّن إليها ناقص واحد، أو حتى تبلغ نهاية الملف، أو حتى تصادف محرف سطر جديد n\

 

 

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن