PDA

צפייה בגרסה מלאה : מדריך קלט/פלט (Input/Output) מתקדמים בשפת C



Tamir
06-09-2024, 11:22 PM
קלט/פלט (Input/Output) מתקדמים בשפת C


קלט/פלט (I/O) מתקדמים בשפת C מאפשרים לנהל את ההתקשרות עם המשתמש או עם קבצים בצורה גמישה ויעילה. מדריך זה יסקור מספר טכניקות מתקדמות לקלט/פלט, כולל עבודה עם קבצים, קלט/פלט בתצורות שונות, וקלט/פלט אִסְטְרִימִי.


עבודה עם קבצים


קבצים הם כלי מרכזי בניהול קלט/פלט בתוכניות C. נוכל לפתוח, לקרוא, לכתוב ולסגור קבצים באמצעות הפונקציות הבאות:


1. פתיחת קובץ: השתמשו בפונקציה `fopen` כדי לפתוח קובץ עם מצב הפתיחה המתאים (לקריאה, כתיבה, הוספה וכו'):



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");


// סגירת הקובץ
fclose(file);


return 0;
}



2. קריאה וכתיבה לקבצים: השתמשו בפונקציות `fread`, `fwrite`, `fprintf`, ו-`fscanf` לקריאה וכתיבה בקובץ:



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("Read from file: %s", buffer);
}


// סגירת הקובץ
fclose(file);


return 0;
}



קלט/פלט אִסְטְרִימִי (Stream I/O)


קלט/פלט אִסְטְרִימִי מתייחס לקריאת וכתיבת נתונים בתצורות שונות כמו סטרימינג, קבצים בינאריים, ונתוני רשת:


1. קלט/פלט עם סטרימינג (Stream I/O): השתמשו בפונקציות `fgets`, `fputc`, `fread`, ו-`fwrite` לקריאת וכתיבת נתונים בסטרימינג:



c
#include <stdio.h>


int main() {
FILE *file;
char c;


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


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


// קריאה תו תו מהקובץ
while ((c = fgetc(file)) != EOF) {
putchar(c);
}


// סגירת הקובץ
fclose(file);


return 0;
}



2. קלט/פלט בעזרת סטרימינג בינארי (Binary Stream I/O): השתמשו בפונקציות `fread` ו-`fwrite` לקריאה וכתיבה של נתונים בינאריים:



c
#include <stdio.h>


int main() {
FILE *file;
int data = 12345;


// כתיבה לקובץ בינארי
file = fopen("binaryfile.bin", "wb");


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


fwrite(&data, sizeof(data), 1, file);


fclose(file);


// קריאה מקובץ בינארי
file = fopen("binaryfile.bin", "rb");


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


int read_data;
fread(&read_data, sizeof(read_data), 1, file);
printf("Read data: %d\n", read_data);


fclose(file);


return 0;
}



קלט/פלט עם Streams Standard Input/Output


קלט/פלט סטנדרטי מתייחס לקריאה וכתיבה מהמקלדת (stdin) ומהמסך (stdout):


1. קלט מהמקלדת: השתמשו בפונקציה `scanf` לקריאה מהקלט הסטנדרטי:



c
#include <stdio.h>


int main() {
int number;


// קבלת קלט מספרי מהמשתמש
printf("Enter a number: ");
scanf("%d", &number);


printf("You entered: %d\n", number);


return 0;
}



2. פלט למסך: השתמשו בפונקציה `printf` כדי להדפיס נתונים למסך:



c
#include <stdio.h>


int main() {
char name[50];


// קבלת קלט טקסטי מהמשתמש
printf("Enter your name: ");
fgets(name, sizeof(name), stdin);


// הדפסת קלט
printf("Hello, %s", name);


return 0;
}



סיכום


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


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