🎯 এই পর্বে যা জানবে:
- ফাইল থেকে ডেটা পড়া ও লেখা (fscanf, fprintf)
- ফাইলের অবস্থান নির্ধারণ (fseek, ftell, rewind)
- বাইনারি ফাইল (Binary File) নিয়ে কাজ
- ফাইল কপি ও ডিলিট করা
- বাস্তব উদাহরণসহ প্রোগ্রাম
🧠 ফাইল হ্যান্ডলিং এর উন্নত ধারণা
আগের পর্বে আমরা শিখেছি কিভাবে ফাইল ওপেন, রিড ও রাইট করা যায়।
এই পর্বে দেখবো কিভাবে বড় ডেটা ফাইল, বাইনারি ফাইল ও ফাইল পজিশনিং কাজ করে।
📜 fscanf ও fprintf দিয়ে ফাইল রিড/রাইট
এই দুটি ফাংশন সাধারণ টেক্সট ফাইল পড়া ও লেখার জন্য খুবই জনপ্রিয়।
#include <stdio.h>
int main() {
FILE *fp;
char name[30];
int age;
fp = fopen("student.txt", "w");
fprintf(fp, "Name: %s\nAge: %d\n", "Rahim", 20);
fclose(fp);
fp = fopen("student.txt", "r");
fscanf(fp, "Name: %s\nAge: %d\n", name, &age);
printf("Name: %s, Age: %d\n", name, age);
fclose(fp);
return 0;
}আউটপুট:
Name: Rahim, Age: 20🔍 ফাইলের অবস্থান নির্ধারণ (fseek, ftell, rewind)
কখনও ফাইলের নির্দিষ্ট অংশে যেতে হতে পারে — তখন এই ফাংশনগুলো ব্যবহার হয়।
| ফাংশন | কাজ |
|---|---|
fseek() | ফাইলের নির্দিষ্ট অবস্থানে কার্সর পাঠায় |
ftell() | কার্সর বর্তমানে কোথায় আছে তা জানায় |
rewind() | কার্সরকে আবার ফাইলের শুরুতে পাঠায় |
উদাহরণ:
#include <stdio.h>
int main() {
FILE *fp;
char ch;
fp = fopen("data.txt", "r");
fseek(fp, 5, SEEK_SET); // ৫ম অক্ষরে যান
while((ch = fgetc(fp)) != EOF) {
printf("%c", ch);
}
fclose(fp);
return 0;
}এখানে SEEK_SET মানে ফাইলের শুরু থেকে গণনা শুরু করবে।
💾 বাইনারি ফাইল (Binary File) নিয়ে কাজ
বাইনারি ফাইল মূলত ডেটা বাইনারি আকারে সংরক্ষণ করে, টেক্সট নয়।
এগুলো ব্যবহার করা হয় যেমন — ইমেজ, ভিডিও, বা ডেটা স্ট্রাকচার সংরক্ষণে।
উদাহরণ:
#include <stdio.h>
struct Student {
char name[20];
int roll;
float marks;
};
int main() {
struct Student s1 = {"Rahim", 101, 85.5};
struct Student s2;
FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(&s1, sizeof(s1), 1, fp);
fclose(fp);
fp = fopen("student.dat", "rb");
fread(&s2, sizeof(s2), 1, fp);
fclose(fp);
printf("Name: %s\nRoll: %d\nMarks: %.2f\n", s2.name, s2.roll, s2.marks);
return 0;
}আউটপুট:
Name: Rahim
Roll: 101
Marks: 85.50📂 ফাইল কপি ও ডিলিট করা
একটি ফাইল থেকে অন্য ফাইলে ডেটা কপি করতে পারি নিচের মতো:
#include <stdio.h>
int main() {
FILE *src, *dest;
char ch;
src = fopen("source.txt", "r");
dest = fopen("copy.txt", "w");
while((ch = fgetc(src)) != EOF) {
fputc(ch, dest);
}
fclose(src);
fclose(dest);
printf("ফাইল সফলভাবে কপি হয়েছে!\n");
return 0;
}ফাইল ডিলিট করতে remove() ব্যবহার করতে হয়:
remove("copy.txt");🚀 সংক্ষেপে
fprintf()ওfscanf()টেক্সট ডেটা ব্যবস্থাপনায় ব্যবহৃতfseek(),ftell(),rewind()দিয়ে ফাইল পজিশন নিয়ন্ত্রণ করা যায়- বাইনারি ফাইল বড় ডেটা সংরক্ষণের জন্য বেশি কার্যকর
- ফাইল কপি ও ডিলিট করা সহজে সম্ভব



