কম্পিউটার টিউটোরিয়াল

সি ভাষায় হাই-লেভেল I/O ফাংশনসমূহ (fprintf, fscanf, fread, fwrite ইত্যাদি)

হাই-লেভেল I/O vs লো-লেভেল I/O

বিষয়হাই-লেভেল I/Oলো-লেভেল I/O
বোঝার সুবিধামানুষের জন্য সহজকম্পিউটারের জন্য সহজ
পোর্টেবিলিটিউচ্চ (পোর্টেবল)নিম্ন (নন-পোর্টেবল)
এক্সিকিউশন স্পিডতুলনামূলক ধীরদ্রুত

প্রধান হাই-লেভেল I/O ফাংশনগুলো

ফাংশনকাজ
fprintf()ফাইলে ফরম্যাটেড ডেটা লেখা
fscanf()ফাইল থেকে ফরম্যাটেড ডেটা পড়া
putc() / fputc()ফাইলে একক ক্যারেক্টার লেখা
getc() / fgetc()ফাইল থেকে একক ক্যারেক্টার পড়া
putw()ফাইলে ইন্টিজার লেখা
getw()ফাইল থেকে ইন্টিজার পড়া
fputs()ফাইলে স্ট্রিং লেখা
fgets()ফাইল থেকে স্ট্রিং পড়া
fwrite()ফাইলে পুরো রেকর্ড (স্ট্রাকচার) লেখা
fread()ফাইল থেকে পুরো রেকর্ড (স্ট্রাকচার) পড়া

ফাংশন ডিটেইলস ও সিনট্যাক্স

fprintf() & fscanf()

// লিখা
fprintf(fp, "%d %s %f", id, name, salary);

// পড়া
fscanf(fp, "%d %s %f", &id, name, &salary);

putc() & getc()

putc(ch, fp);        // ক্যারেক্টার লিখুন
ch = getc(fp);       // ক্যারেক্টার পড়ুন

putw() & getw()

putw(num, fp);       // ইন্টিজার লিখুন
num = getw(fp);      // ইন্টিজার পড়ুন

fputs() & fgets()

fputs(str, fp);                    // স্ট্রিং লিখুন
fgets(str, size, fp);              // স্ট্রিং পড়ুন (সাইজ-১ ক্যারেক্টার বা \n পর্যন্ত)

fwrite() & fread() — স্ট্রাকচার/রেকর্ডের জন্য

struct emp { int id; char name[30]; float sal; } e;
FILE *fp;

// লিখুন
fwrite(&e, sizeof(e), 1, fp);

// পড়ুন
fread(&e, sizeof(e), 1, fp);

উদাহরণ প্রোগ্রাম ১: সংখ্যা ১-১০ ফাইলে লিখে পড়া

#include <stdio.h>

int main() {
    FILE *fp;
    int i;

    fp = fopen("num.txt", "w");
    for (i = 1; i <= 10; i++)
        putw(i, fp);
    fclose(fp);

    fp = fopen("num.txt", "r");
    printf("File content: ");
    for (i = 1; i <= 10; i++) {
        int val = getw(fp);
        printf("%d", val);
    }
    fclose(fp);
    return 0;
}

আউটপুট:

File content: 12345678910

উদাহরণ প্রোগ্রাম ২: স্ট্রাকচার দিয়ে স্ট্রুডেন্ট রেকর্ড fwrite/fread

#include <stdio.h>

struct student {
    int sno;
    char sname[30];
    float marks;
};

int main() {
    struct student s[2];
    FILE *fp;
    int i;

    fp = fopen("student.txt", "w");
    for (i = 0; i < 2; i++) {
        printf("Student %d:\n", i+1);
        printf("Number: "); scanf("%d", &s[i].sno);
        printf("Name: "); scanf(" %[^\n]", s[i].sname);
        printf("Marks: "); scanf("%f", &s[i].marks);
        fwrite(&s[i], sizeof(s[i]), 1, fp);
    }
    fclose(fp);

    fp = fopen("student.txt", "r");
    for (i = 0; i < 2; i++) {
        fread(&s[i], sizeof(s[i]), 1, fp);
        printf("\nStudent %d: No=%d, Name=%s, Marks=%.2f", i+1, s[i].sno, s[i].sname, s[i].marks);
    }
    fclose(fp);
    return 0;
}
  1. C ভাষায় putw() এবং getw() ফাংশন ব্যাখ্যা

  2. সি প্রোগ্রামিং-এ ফাংশনের বিভাগ (Categories of Functions)

  3. সি ভাষায় শিফট অপারেশন (লেফট, রাইট শিফট এবং কমপ্লিমেন্ট)

  4. সি ভাষায় বিভিন্ন সার্চিং টেকনিক কী কী?