C प्रोग्रामिंग भाषा में, प्रोग्रामर फाइलों तक पहुँच सकता है और उनमें सामग्री पढ़ और लिख सकता है।
एक फाइल सिंपल मेमोरी ब्लॉक होता है जो जानकारी संग्रहीत कर सकता है, यहां हम केवल टेक्स्ट से संबंधित हैं।
इस प्रोग्राम में, हम दो फाइलों की तुलना करेंगे और होने वाले बेमेल की रिपोर्ट करेंगे। ये फाइलें लगभग समान हैं लेकिन कुछ वर्ण भिन्न हो सकते हैं। साथ ही, प्रोग्राम उस फाइल की लाइन और स्थिति लौटाएगा जहां पहला बेमेल होता है।
एल्गोरिदम
चरण 1: दोनों फाइलों को पॉइंटर के साथ शुरुआत में खोलें। चरण 2: फाइल से डेटा को एक-एक करके वर्णों के रूप में प्राप्त करें। चरण 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;
}
आउटपुट
// फाइलों की सामग्री File1: Hello! Welcome to tutorials Point File2: Hello! Welcome to turoials point Line number: 2 Error position: 15 Total error : 1