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

সি প্রোগ্রামিং-এ দুটি ফাইল তুলনা করে মিল খুঁজে বের করা


সি প্রোগ্রামিং-এ প্রোগ্রামার ফাইল অ্যাক্সেস করে সেখানে কন্টেন্ট পড়তে ও লিখতে পারেন। একটি ফাইল হলো সামান্য মেমোরি ব্লক যা ইনফরমেশন সংরক্ষণ করে, এখানে আমরা শুধু টেক্সট নিয়ে কাজ করব।

এই প্রোগ্রামে দুটি ফাইল তুলনা করা হবে এবং মিল না খাওয়া যাওয়া বাইট/ক্যারেক্টার রিপোর্ট করা হবে। এই ফাইলগুলো প্রায় একই হয়ে থাকতে পারে কিন্তু কিছু ক্যারেক্টার ভিন্ন হতে পারে। প্রোগ্রামটি প্রথম মিল না খাওয়া যাওয়া লাইন নম্বর এবং পজিশন রিটার্ন করবে।

অ্যালগরিদম

Step 1: উভয় ফাইলকে পয়েন্টার সহ শুরুতে খুলুন।
Step 2: ফাইল থেকে ক্যারেক্টার تلو ক্যারেক্টার ডেটা ফেচ করুন।
Step 3: ক্যারেক্টারগুলো তুলনা করুন। যদি ক্যারেক্টারগুলো ভিন্ন হয়, তবে এরর ক্যারেক্টারটির লাইন নম্বর এবং পজিশন রিটার্ন করুন।

সি প্রোগ্রাম

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void compareFiles(FILE *file1, FILE *file2) {
    char ch1 = getc(file1);
    char ch2 = getc(file2);
    int error = 0, pos = 0, line = 1;
    while (ch1 != EOF && ch2 != EOF) {
        pos++;
        if (ch1 == '\n' && ch2 == '\n') {
            line++;
            pos = 0;
        }
        if (ch1 != ch2) {
            error++;
            printf("Line Number: %d \tError Position: %d \n", line, pos);
        }
        ch1 = getc(file1);
        ch2 = getc(file2);
    }
    printf("Total Errors: %d\t", error);
}

int main() {
    FILE *file1 = fopen("file1.txt", "r");
    FILE *file2 = fopen("file2.txt", "r");
    if (file1 == NULL || file2 == NULL) {
        printf("Error: Files not open");
        exit(0);
    }
    compareFiles(file1, file2);
    fclose(file1);
    fclose(file2);
    return 0;
}

আউটপুট

// content of the files
File1: Hello! Welcome to tutorials Point
File2: Hello! Welcome to turoials point
Line number: 2 Error position: 15
Total error: 1

  1. Linux-এ ফাইল ও ফোল্ডার রিনেম করার পদ্ধতি

  2. C ভাষায় putc() এবং getc() ফাংশন ব্যাখ্যা

  3. দুইটি Excel ওয়ার্কবুক সহজে তুলনা করুন ও পার্থক্য হাইলাইট করুন: ধাপে ধাপে গাইড

  4. Windows 10-এ ফোল্ডার তুলনা ও সিঙ্ক্রোনাইজ: সম্পূর্ণ গাইড