C Program to Compare two Text or Data files

C Program to Compare two Text or Data files

The C library function char *gets(char *str) reads a line from stdin and stores it into the string pointed to by str.

getc( ) returns a character from the specified file.

--------------------------------------------------------------------------------------------------------------------------

#include<stdio.h>

int main( )

{

FILE *fp1, *fp2;
int ch1,ch2;
char fname1[40],fname2[40];
printf("Enter name of first file:");
gets(fname1);
printf("Enter name of second file:");
gets(fname2);
fp1 = fopen(fname1, "r");
fp2 = fopen(fname2, "r");
if(fp1 == NULL){
printf("Cannot Open %s for reading",fname1);
exit(1);
} else if (fp2 == Null){
printf("Cannot Open %s for reading ",fname2);
exit(1);
}else{
ch1 = getc(fp1);
ch2 = getc(fp2);
while ((ch1 != EOF) && (ch2 != EOF) && (ch1 == ch2)){
ch1 = getc(fp1);
ch2 = getc(fp2);
}

if(ch1 == ch2)
printf("Files are Identical n");
else if (ch1 != ch2)
printf("Files are not Identical n");
fclose(fp1);
fclose(fp2);
}
return(0);
}

--------------------------------------------------------------------------------------------------------------------------

Explanation

--------------------------------------------------------------------------------------------------------------------------

Declare two file pointers for two files.

Open two files in Read mode.

Inside while loop read both files character by character

Check both characters whether they are equal or not

If inside if statement ch1 = EOF and ch2 = EOF then both files are said to be equal.

Otherwise both files are not equal.



EmoticonEmoticon