توفر لغة البرمجة سي أدوات مختلفة للعمل مع الملفات ، بما في ذلك القدرة على كتابة المصفوفات إلى الملفات. يمكن أن تكون كتابة مصفوفة إلى ملف مفيدة عندما تحتاج إلى حفظ كمية كبيرة من البيانات أو نقل المعلومات بين البرامج. في هذا الدليل ، سوف ننظر في كيفية كتابة صفيف إلى ملف ج.
الخطوة الأولى لكتابة صفيف إلى ملف ج هو فتح الملف باستخدام وظيفة فوبين. تقبل هذه الوظيفة معلمتين: اسم الملف ووضع الوصول. يحدد وضع الوصول كيفية فتح الملف: للكتابة أو للقراءة. لكتابة صفيف إلى ملف ، تحتاج إلى فتح الملف في وضع الكتابة. على سبيل المثال ، لفتح ملف باسم "البيانات.النص " في وضع التسجيل ، يمكننا استخدام الكود التالي:
ملف * ملف = فوبين ("البيانات.النص " ، "ث");
بعد فتح الملف ، يمكننا استخدام وظيفة الكتابة لكتابة المصفوفة إلى الملف. تأخذ هذه الوظيفة أربعة معلمات: مؤشر إلى صفيف ، وحجم عنصر صفيف ، وعدد العناصر المراد كتابتها ، ومؤشر إلى ملف. على سبيل المثال ، لكتابة مجموعة أر من طول ن إلى ملف ، يمكننا استخدام التعليمات البرمجية التالية:
فوريت(أر ، سيزوف (إنت) ، ن ، ملف);
بعد كتابة المصفوفة إلى ملف ، يجب علينا إغلاق الملف باستخدام وظيفة فكلوس. هذه خطوة مهمة ، لأن إغلاق الملف يحفظ جميع التغييرات التي تم إجراؤها عليه. لإغلاق الملف ، يمكننا استخدام الكود التالي:
فكلوس (ملف);
الآن بعد أن عرفنا أساسيات كتابة مصفوفة إلى ملف ج ، يمكننا استخدام هذه التقنية لحفظ البيانات ونقلها بين البرامج. هذه طريقة ملائمة للعمل مع كميات كبيرة من البيانات ومشاركة المعلومات.
- العمل مع الملفات في ج
- التحضير للعمل
- فتح ملف للتسجيل
- كتابة البيانات إلى ملف
- إغلاق ملف
- التحقق من نجاح كتابة مصفوفة إلى ملف
- سؤال وجواب
- كيف يمكنني كتابة صفيف إلى ملف?
- ما هي قيمة الكتابة () عودة وظيفة?
- هل من الممكن لكتابة مجموعة من الهياكل إلى ملف?
- كيف يمكنني التحقق مما إذا كانت المصفوفة مكتوبة بنجاح في ملف?
العمل مع الملفات في ج
توفر لغة البرمجة ج إمكانيات واسعة للعمل مع الملفات. يسمح لك بفتح الملفات وقراءة البيانات منها وكتابة البيانات إليها والتنقل عبر الملف وإجراء عمليات أخرى.
للعمل مع ملفات ج ، تحتاج إلى استخدام المكتبة. يحتوي على وظائف لفتح الملفات وإغلاقها وقراءتها وكتابتها ، وكذلك للتنقل عبر الملف.
تتضمن عملية العمل مع ملفات سي الخطوات الأساسية التالية:
- فتح ملف باستخدام وظيفة فوبين (). تقبل هذه الوظيفة معلمتين: اسم الملف ووضع الفتح (قراءة ، كتابة ، إضافة ، إلخ.).
- التحقق من نجاح فتح ملف باستخدام الشرطي إذا بناء.
- قراءة أو كتابة البيانات إلى ملف باستخدام وظائف فسكنف() أو فبرينتف ().
- إغلاق الملف باستخدام وظيفة فكلوس (). هذه خطوة مهمة ، لأن إغلاق الملف يحرر موارد الكمبيوتر ويمنع فقدان البيانات.
بالإضافة إلى الخطوات الأساسية ، يمكن إجراء عمليات أخرى باستخدام ملفات سي ، بما في ذلك الانتقال عبر ملف ، وحذف ملف وإعادة تسميته ، والتحقق من وجود ملف ، وغيرها. تستخدم أيضا وظائف خاصة من المكتبة لهذا الغرض.
يوجد أدناه مثال على رمز ج الذي يوضح فتح ملف وكتابة البيانات إليه وإغلاق الملف:
# تشمل
كثافة العمليات الرئيسية () {
ملف * ملف;
ملف = فوبين ("مثال.النص " ، "ث");
إذا (ملف == فارغ) {
برينتف ("خطأ في فتح الملف
");
عودة 1;
}
فبرينتف (ملف ، " مثال على كتابة البيانات إلى ملف
");
فكلوس (ملف);
العودة 0;
}
في هذا المثال ، يتم إنشاء ملف باسم " مثال.النص "والسطر" مثال على كتابة البيانات إلى ملف " مكتوب. بعد كتابة البيانات ، يتم إغلاق الملف باستخدام وظيفة فكلوس ().
وهكذا ، والعمل مع الملفات في ج يسمح لك لقراءة وكتابة البيانات ، وإدارة نظام الملفات ، وتنفيذ عمليات أخرى. عند استخدام وظائف الملف ، يجب أن تكون حذرا وتحقق من نجاح كل خطوة لتجنب فقدان البيانات أو الأخطاء عند العمل مع الملفات.
التحضير للعمل
قبل البدء في كتابة صفيف إلى ملف ج ، سوف تحتاج إلى القيام ببعض الأعمال التحضيرية.
قم بتضمين ملفات الرأس الضرورية:
يحتوي على تعريف وظائف للعمل مع الملفات.
، والذي يحتوي على تعريف وظائف للعمل مع الذاكرة.
تحديد المسار إلى الملف:
قبل كتابة مصفوفة إلى ملف ، من الضروري تحديد المسار إلى الملف الذي سيتم تخزين المصفوفة فيه. يمكنك تحديد مسار مطلق أو مسار نسبي من الدليل الحالي.
إذا لم يكن الملف موجودا ، فسيتم إنشاؤه تلقائيا في المسار المحدد.
تحديد نوع بيانات المصفوفة:
.
إذا كانت المصفوفة الخاصة بك تحتوي على عناصر من أنواع أخرى (على سبيل المثال ، أرقام كسرية أو رموز) ، فأنت بحاجة إلى تحديد نوع البيانات المناسب.
أعلن صفيف:
إنشاء مجموعة من الحجم المطلوب وملء مع البيانات.
.
بعد الانتهاء من هذه الخطوات ، ستكون جاهزا لكتابة المصفوفة إلى ملف ج.
فتح ملف للتسجيل
لكتابة صفيف إلى ملف ج ، يجب عليك أولا فتح الملف. يتم فتح الملف للكتابة باستخدام وظيفة فوبين ().
بناء جملة وظيفة فوبين () كما يلي:
| وظيفة | الوصف |
|---|---|
| ملف * فوبين (كونست شار * اسم الملف ، كونست شار * الوضع) | يفتح ملف اسمه اسم الملف في وضع الوضع |
أين:
- اسم الملف هو اسم الملف الذي سيتم فتحه للكتابة
- الوضع-وضع فتح الملف
أوضاع فتح الملف للتسجيل:
| الوضع | الوصف |
|---|---|
| "دبليو" | يفتح الملف للكتابة. إذا كان الملف موجودا بالفعل ، فسيتم مسح محتوياته. إذا لم يكن الملف موجودا ، فسيتم إنشاؤه. |
| "دبليو+" | يفتح الملف للكتابة والقراءة. إذا كان الملف موجودا بالفعل ، فسيتم مسح محتوياته. إذا لم يكن الملف موجودا ، فسيتم إنشاؤه. |
| "أ" | يفتح الملف للكتابة إلى نهاية الملف. إذا لم يكن الملف موجودا ، فسيتم إنشاؤه. |
| "أ+" | يفتح الملف للكتابة والقراءة إلى نهاية الملف. إذا لم يكن الملف موجودا ، فسيتم إنشاؤه. |
مثال على استخدام وظيفة فوبين () لفتح ملف البيانات.النص للسجل:
ملف * ملف = فوبين ("البيانات.النص " ، "ث");
إذا (ملف == فارغ) {
برينتف ("خطأ في فتح الملف");
عودة 1;
}
في هذا المثال ، سيحتوي متغير الملف على مؤشر إلى ملف مفتوح. إذا تم فتح الملف بنجاح ، فستكون قيمة المؤشر غير فارغة. في حالة حدوث خطأ أثناء فتح الملف ، ستكون قيمة المؤشر فارغة.
بعد كتابة المصفوفة إلى ملف ، يجب إغلاق الملف باستخدام وظيفة فكلوس (). يعد ذلك ضروريا لحفظ التغييرات وتحرير الموارد التي يشغلها الملف المفتوح. وظيفة فكلوس () لديها بناء الجملة التالي:
| وظيفة | الوصف |
|---|---|
| من إنت فكلوسي (ملف * ملف ) | يغلق الملف المشار إليه بواسطة مؤشر الملف |
مثال على استخدام وظيفة فكلوس () لإغلاق ملف:
إذا (فكلوس (ملف) != 0) {
برينتف ("خطأ إغلاق الملف");
عودة 1;
}
في هذا المثال ، تقوم الدالة فكلوس() بإرجاع قيمة غير صفرية في حالة حدوث خطأ أثناء إغلاق الملف.
كتابة البيانات إلى ملف
لكتابة البيانات إلى ملف ج ، تحتاج إلى اتباع عدة خطوات:
- افتح الملف باستخدام وظيفة فوبين (). وظيفة فوبين () يأخذ وسيطتين: اسم الملف ووضع الوصول إلى الملف. وضع الوصول يمكن أن يكون " ص "(قراءة) ، " ث "(الكتابة) أو" أ " (تسجيل إضافي).
- تحقق مما إذا تم فتح الملف بنجاح. وظيفة فوبين() بإرجاع مؤشر إلى الملف إذا تم فتح الملف بنجاح ، أو فارغة إذا حدث خطأ أثناء فتح الملف. لذلك ، من الضروري التحقق من المؤشر الفارغ للتأكد من فتح الملف بنجاح.
- كتابة البيانات إلى ملف باستخدام وظيفة فبرينتف (). تقبل وظيفة فبرينتف () مؤشر إلى ملف وسلسلة ليتم كتابتها. يمكنك استخدام الإخراج المنسق عن طريق تحديد محددات التنسيق بنفس طريقة وظيفة برينتف ().
- أغلق الملف باستخدام وظيفة فكلوس (). بعد كتابة البيانات إلى الملف ، فمن الضروري إغلاقه باستخدام وظيفة فكلوس (). هذا مهم لحفظ البيانات وتحرير موارد نظام التشغيل.
مثال على التعليمات البرمجية التي تكتب مصفوفة إلى ملف:
# تشمل
كثافة العمليات الرئيسية () {
إنت آر[] = {1, 2, 3, 4, 5};
حجم إنت = سيزوف ( أر) / سيزوف (أر[0]);
ملف * ملف = فوبين ("الإخراج.النص " ، "ث");
إذا (ملف != لاغية) {
ل (إنت أنا = 0 ؛ أنا < الحجم ؛ أنا i) {
فبرينتف (ملف ، " ٪ د
"،آر [أنا]);
}
فكلوس (ملف);
برينتف ("تمت كتابة البيانات بنجاح إلى الملف.
");
} آخر {
برينتف ("خطأ في فتح الملف.
");
}
العودة 0;
}
في هذا المثال ، نقوم بإنشاء ملف " الإخراج.تكست " ونحن نكتب عناصر مجموعة أر في ذلك. كل عنصر مكتوب في سطر منفصل.
بعد تنفيذ البرنامج ، في ملف " الإخراج.النص " سيتم احتواء البيانات التالية:
1
2
3
4
5
تأكد من أن لديك أذونات الكتابة إلى الدليل المحدد وأن إخراج الملف.النص غير موجود ، وإلا فإن وظيفة فوبين() قد ترجع خطأ.
إغلاق ملف
بعد الانتهاء من جميع العمليات مع الملف ، يجب إغلاقه. يؤدي إغلاق ملف إلى تحرير موارد نظام التشغيل التي تم تخصيصها للعمل مع هذا الملف ويسمح للبرامج الأخرى بالوصول إلى الملف.
في اللغة ج ، يتم إغلاق الملف باستخدام وظيفة فكلوس (). النموذج الأولي من وظيفة فكلوس () يبدو مثل هذا:
إنت فكلوس (ملف * تيار );
هنا تيار هو مؤشر إلى كائن دفق الملف الذي يحتاج إلى إغلاق. تقوم الدالة فكلوس() بإرجاع القيمة 0 إذا تم إغلاق الملف بنجاح ، والقيمة إوف في حالة حدوث خطأ.
مثال على إغلاق ملف:
| إنت فكلوس (ملف * تيار ) |
|---|
برينتف ("خطأ إغلاق الملف
- ");
عودة 1;
العودة 0;
}
في هذا المثال ، تفتح الدالة المفتوحة () الملف " مثال.النص " للسجل. بعد كتابة سطر إلى ملف باستخدام وظيفة فبرينتف () ، يتم استدعاء وظيفة فكلوس () لإغلاقه. إذا كانت الدالة فكلوس() بإرجاع قيمة غير صفرية ، يتم عرض رسالة خطأ. خلاف ذلك ، يتم إغلاق الملف بنجاح.
التحقق من نجاح كتابة مصفوفة إلى ملف
بعد كتابة المصفوفة إلى ملف ج ، من الضروري التحقق من نجاح هذه العملية. للقيام بذلك ، يمكنك استخدام الطرق التالية:
التحقق من قيمة الإرجاع لوظيفة تسجيل الملف
التحقق من وجود الملف الذي تم إنشاؤه
مقارنة محتويات الملف مع النتيجة المتوقعة
1. التحقق من قيمة الإرجاع لوظيفة تسجيل الملف:
وظيفة تسجيل الملف في ج ، مثل
فوريت()
أو
فبرينتف()
، إرجاع عدد عناصر البيانات المكتوبة بنجاح. للتحقق من نجاح كتابة مصفوفة إلى ملف ، من الضروري مقارنة القيمة التي تم إرجاعها بعدد عناصر المصفوفة. إذا كانت القيم متساوية ، فإن التسجيل كان ناجحا. إذا كانت القيم مختلفة ، فقد يحدث خطأ أثناء التسجيل.
# تشمل
إذا (ملف != لاغية) {
العناصر الدولية_مكتوب = الكتابة (صفيف ، حجم (كثافة العمليات) ، الحجم ، الملف);
إذا (عناصر_مكتوب = = الحجم) {
برينتف ("مجموعة مكتوبة بنجاح إلى ملف.");
} آخر {
برينتف ("خطأ كتابة صفيف إلى ملف.");
}
فكلوس (ملف);
} آخر {
برينتف ("خطأ في فتح الملف.");
}
العودة 0;
}
2. التحقق من الملف الذي تم إنشاؤه:
هناك طريقة أخرى للتحقق من نجاح كتابة مصفوفة إلى ملف وهي التحقق مما إذا كان الملف الذي تم إنشاؤه موجودا على القرص. للقيام بذلك ، يمكنك استخدام الوظيفة
الوصول()
، تمريره اسم الملف والعلم
ف_وك
. إذا كانت قيمة الإرجاع للوظيفة هي 0 ، فإن الملف موجود ، إذا -1 ، ثم حدث خطأ.
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
صفيف كثافة العمليات[] = {1, 2, 3, 4, 5};
int size = sizeof(array) / sizeof(int);
FILE *file = fopen("array.txt", "w");
if (file != NULL) {
fwrite(array, sizeof(int), size, file);
fclose(file);
if (access("array.txt", F_OK) == 0) {
printf("Массив успешно записан в файл.");
} else {
printf("Ошибка при записи массива в файл.");
}
} else {
printf("Ошибка при открытии файла.");
}
return 0;
}
3. Сравнение содержимого файла с ожидаемым результатом:
هناك طريقة أخرى للتحقق من نجاح كتابة مصفوفة إلى ملف وهي مقارنة محتويات الملف الذي تم إنشاؤه بالقيم المتوقعة. للقيام بذلك ، يمكنك قراءة القيم من الملف مرة أخرى إلى المصفوفة ومقارنتها مع المصفوفة الأصلية.
# تشمل
كثافة العمليات الرئيسية () {
صفيف كثافة العمليات[] = {1, 2, 3, 4, 5};
حجم كثافة العمليات = حجم (صفيف) / حجم (كثافة العمليات);
ملف * ملف = فوبين ("صفيف.النص " ، "ث");
إذا (ملف != لاغية) {
fwrite(array, sizeof(int), size, file);
fclose(file);
file = fopen("array.txt", "r");
int read_array[size];
fread(read_array, sizeof(int), size, file);
fclose(file);
// Сравнение массивов
int equal = 1;
for (int i = 0; i < size; i++) {
if (array[i] != read_array[i]) {
equal = 0;
break;
}
}
if (equal) {
printf("Массив успешно записан в файл.");