ফাইল হলো রেকর্ডের সংগ্রহ অথবা হার্ড ডিস্কে এমন একটি স্থান যেখানে ডেটা পাবলিকলি স্টোর থাকে।
ফাইলের প্রয়োজন
- প্রোগ্রাম টার্মিনেট হলে পুরো ডেটা হারিয়ে যায়।
- ফাইলে স্টোর করলে প্রোগ্রাম টার্মিনেট হলেও ডেটা বাঁচিয়ে থাকে।
- বড় পরিমাণ ডেটা ইনপুট দিতে সময় লাগে।
- কিছু কমান্ড দিয়ে ফাইলের কন্টেন্ট সহজে অ্যাক্সেস করা যায়।
- ডেটা একটি কম্পিউটার থেকে অন্যটিতে সহজে স্থানান্তর করা যায়।
- C কমান্ড দিয়ে ফাইল বিভিন্নভাবে অ্যাক্সেস করা যায়।
ফাইলে অপারেশন
C প্রোগ্রামিং ভাষায় ফাইলে নিম্নলিখিত অপারেশনগুলো করা যায়—
- ফাইল নামকরণ
- ফাইল খোলা
- ফাইল থেকে পড়া
- ফাইলে লেখা
- ফাইল বন্ধ করা
সিনট্যাক্স
ফাইল পয়েন্টার ডিক্লেয়ার করার সিনট্যাক্স—
FILE *File pointer;
উদাহরণ: FILE * fptr;
ফাইল পয়েন্টার নামকরণ ও খোলার সিনট্যাক্স—
File pointer = fopen("File name", "mode");
উদাহরণ:
FILE *fp;
fp = fopen("sample.txt", "w");
প্রোগ্রাম ১
n সংখ্যক ছাত্রের নাম ও মার্কস পড়ে ফাইলে স্টোর করার C প্রোগ্রাম—
#include <stdio.h>
int main() {
char name[50];
int marks, i, num;
printf("Enter number of students: ");
scanf("%d", &num);
FILE *fptr;
fptr = (fopen("std.txt", "w")); // opening file in write mode
if (fptr == NULL) {
printf("Error!");
exit(1);
}
for (i = 0; i < num; ++i) {
printf("For student%d\nEnter name: ", i + 1);
scanf("%s", name);
printf("Enter marks: ");
scanf("%d", &marks);
fprintf(fptr, "\nName: %s \nMarks=%d \n", name, marks);
}
fclose(fptr);
return 0;
}
আউটপুট
Enter number of students: 3 For student1 Enter name: lucky Enter marks: 59 For student2 Enter name: pinky Enter marks: 89 For student3 Enter name: bob Enter marks: 45
প্রোগ্রাম ২
কর্মচারির ডিটেইলস ফাইলে স্টোর করে প্রিন্ট করার C প্রোগ্রাম—
#include<stdio.h>
int main() {
FILE *fp;
int eno;
char ename[30];
float sal;
fp = fopen("emp.txt", "w"); // opening file in write mode
printf("enter the details of eno, ename, sal:");
scanf("%d%s%f", &eno, ename, &sal);
fprintf(fp, "%d%s%f", eno, ename, sal);
fclose(fp);
fp = fopen("emp.txt", "r");
fscanf(fp, "%d%s%f", &eno, ename, &sal);
printf("employee no: = %d\n", eno);
printf("employee name = %s\n", ename);
printf("salary = %f\n", sal);
fclose(fp);
return 0;
}
আউটপুট
enter the details of eno, ename, sal:1 Pinky 34000 employee no: = 1 employee name = Pinky salary = 34000.000000