اذهب إلى المحتوى
  • 0

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

Tareq Khashaneh

السؤال

Recommended Posts

  • 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\

 

 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...