PDA

צפייה בגרסה מלאה : מדריך ניהול קבצים (File Handling) בשפת C



Tamir
06-09-2024, 11:16 PM
ניהול קבצים (File Handling) בשפת C


ניהול קבצים בשפת C מאפשר לנו לקרוא, לכתוב, ולנהל קבצים בצורה גמישה. לשם כך, שפת C מספקת פונקציות סטנדרטיות שניתן להשתמש בהן מתוך ספריית `stdio.h`.


פתיחת קובץ


לפני שניתן לקרוא או לכתוב לקובץ, יש לפתוח אותו בעזרת הפונקציה `fopen`. ניתן לציין את מצב הפתיחה, כגון קריאה (`"r"`), כתיבה (`"w"`), או הוספה (`"a"`):



c
#include <stdio.h>


int main() {
FILE *file;


// פתיחת קובץ לקריאה
file = fopen("example.txt", "r");


if (file == NULL) {
printf("Error opening file\n");
return 1;
}


// סגירת הקובץ לאחר השימוש
fclose(file);
return 0;
}



קריאה וכתיבה לקבצים


לאחר פתיחת הקובץ, ניתן לקרוא ממנו או לכתוב אליו. הנה דוגמאות לקריאה וכתיבה לקובץ:


1. כתיבה לקובץ:



c
#include <stdio.h>


int main() {
FILE *file;


// פתיחת קובץ לכתיבה
file = fopen("example.txt", "w");


if (file == NULL) {
printf("Error opening file\n");
return 1;
}


// כתיבה למספר שורות לקובץ
fprintf(file, "Hello, World!\n");
fprintf(file, "This is a file handling example.\n");


// סגירת הקובץ לאחר השימוש
fclose(file);
return 0;
}



2. קריאה מקובץ:



c
#include <stdio.h>


int main() {
FILE *file;
char buffer[100];


// פתיחת קובץ לקריאה
file = fopen("example.txt", "r");


if (file == NULL) {
printf("Error opening file\n");
return 1;
}


// קריאת שורות מהקובץ
while (fgets(buffer, sizeof(buffer), file)) {
printf("%s", buffer);
}


// סגירת הקובץ לאחר השימוש
fclose(file);
return 0;
}



הוספת תוכן לקובץ


אם רוצים להוסיף תוכן לקובץ מבלי למחוק את התוכן הקיים, יש לפתוח את הקובץ במצב הוספה (`"a"`):



c
#include <stdio.h>


int main() {
FILE *file;


// פתיחת קובץ להוספה
file = fopen("example.txt", "a");


if (file == NULL) {
printf("Error opening file\n");
return 1;
}


// הוספת שורה לקובץ
fprintf(file, "Adding new line to the file.\n");


// סגירת הקובץ לאחר השימוש
fclose(file);
return 0;
}



מחיקת קובץ


כדי למחוק קובץ, ניתן להשתמש בפונקציה `remove`:



c
#include <stdio.h>


int main() {
if (remove("example.txt") == 0) {
printf("File deleted successfully\n");
} else {
printf("Error deleting file\n");
}
return 0;
}



שימושים נוספים


- קביעת מיקום בקריאה/כתיבה: ניתן להשתמש בפונקציות `fseek` ו-`ftell` כדי לקבוע את המיקום הנוכחי בקריאה או כתיבה בקובץ.
- בדיקת קובץ: ניתן לבדוק אם קובץ קיים בעזרת פונקציה כמו `fopen` ולוודא שהיא מחזירה `NULL` במקרה של שגיאה.


סיכום


במדריך זה למדנו על ניהול קבצים בשפת C, כולל פתיחה, קריאה, כתיבה, הוספה, ומחיקה של קבצים. ניהול קבצים הוא מיומנות חשובה בעבודה עם נתונים בקוד.


אם יש לכם שאלות נוספות, אתם מוזמנים לשאול! ?