Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a C program that simulates a different version of Unix’s diff command (to

ID: 3786212 • Letter: W

Question

Write a C program that simulates a different version of Unix’s diff command (to be called diffnew.c). For example, given two text files file1.txt and file2.txt: (Assume max line size in either file is 256)

diffnew      file1.txt    file2.txt flag

returns:

o   Zero (0) if the two files are exactly identical

o   -1 if either one of the two files is missing or cannot be opened, or an illegal flag value is used. Provide an explanation of the encountered error.

o   A positive integer indicating:

§ the number of characters that are different in the two files (if 1 flag is used)

§ the number of words that are different in the two files (if 2 flag is used)

§ the number of lines that are different in the two files (if 3 flag is used)

Example output would look like

           Files contain 15 different characters.

Explanation / Answer

Hi,

According to your requiement I'm writing C code. Please find below code for different diffferent functionalities.

1) Zero (0) if the two files are exactly identical

Hi,

According to your requiement I'm writing C code. Please find below code for different diffferent functionalities.

1) Zero (0) if the two files are exactly identical

2)  -1 if either one of the two files is missing or cannot be opened, or an illegal flag value is used. Provide an explanation of the encountered error.

3)

A positive integer indicating:

§ the number of characters that are different in the two files (if 1 flag is used)

§ the number of words that are different in the two files (if 2 flag is used)

§ the number of lines that are different in the two files (if 3 flag is used)

According to your requirement I have written the code but i haven't got any chanace to test it If your facing any issue please let me know.

Program

*******************************************************************************************************

#include<stdio.h>

int main() {

FILE *fp1, *fp2, *fp3;

int ch1, ch2, linecount, wordcount, charcount;;

char file1[40], file2[40];

   // Initialize counter variables
   linecount = 0;
   wordcount = 0;
   charcount = 0;

printf("Enter name of first file :");

gets(file1);

printf("Enter name of second file:");

gets(file2);

fp1 = fopen(file1, "r");

fp2 = fopen(file2, "r");

if (fp1 == NULL) {

printf("Cannot open %s for reading ", file1);

exit(-1);

} else if (fp2 == NULL) {

printf("Cannot open %s for reading : ", file2);

exit(-1);

} else {

ch1 = getc(fp1);

ch2 = getc(fp2);

while ((ch1 != EOF) && (ch2 != EOF) && (ch1 == ch2)) {

ch1 = getc(fp1);

ch2 = getc(fp2);

}

   //For file lines,character count
   if (ch1 != ch2){
   while ((ch1=getc(fp)) != EOF || (ch2=getc(fp)) != EOF ) {
      
      // Increment character count if NOT new line or space
       if (ch1 != ' ' && ch2!= ' ' && ch1 != ' ' && ch2 != ' ') { ++charcount; }
      
       // Increment word count if new line or space character
       if (ch1 != ' ' && ch2!= ' ' || ch1 != ' ' && ch2 != ' ') { ++wordcount; }
         
       // Increment line count if new line character
       if (ch1 == ' ' && ch2 != ' ') { ++linecount; }
   }

   if (charcount > 0) {
       ++linecount;
       ++wordcount;
   }
   }

if (ch1 == ch2)

printf("Files are identical n");

else if (ch1 != ch2)

printf("Files are Not identical n");

fclose(fp1);

fclose(fp2);

}

return (0);

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote