Tareq Khashaneh نشر 1 مايو 2016 أرسل تقرير نشر 1 مايو 2016 السلام عليكم ..اريد ان اعلم ماهي التعليمات التي تستخدم للكتابة على الملفات النصية و القراءة منها وكذلك في الملفات الثنائية بلغة سي. اقتباس
1 سعيد نشر 2 مايو 2016 أرسل تقرير نشر 2 مايو 2016 بالنسبة للكتابة إلى الملفات النصية: 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 اقتباس
السؤال
Tareq Khashaneh
السلام عليكم ..اريد ان اعلم ماهي التعليمات التي تستخدم للكتابة على الملفات النصية و القراءة منها وكذلك في الملفات الثنائية بلغة سي.
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.