In this c program. Please explain every line of this code. Thank you Source Code: #include #include // returns decoded character for given code and its count char decode(char code, int count){         char data[][6] = {                 "@.?1", "ABC2", "DEF3", "GHI4", "JKL5",                 "MNO6", "PQRS7", "TUV8", "WXYZ9"         };         int index;         if(code == '*')                 return '\n';         if(code == '#')                 return ' ';         if(code == '0')                 return '0';         if(code == '7' || code == '9')                 count = (count-1) % 5;         else                 count = (count-1) % 4;         index = (int)(code - 49);         return data[index][count]; } // MAIN PROGRAM int main(){         char filename[20];         char code;         char prevCode;         int count = 0;         // taking filename as user input         printf("Enter input filename: ");         scanf("%s", filename);         // opening file in read mode         FILE *file = fopen(filename, "r");         // if file exists         if(file){                 // reading file char by char                 code = fgetc(file);                                  while(code != EOF){                         if(count == 0){                                 prevCode = code;                         }                         if(prevCode == code){                                 count++;                                 code = fgetc(file);                         }                          else if(count != 0){                                 if(prevCode != ' ')                                         printf("%c", decode(prevCode, count));                                 count = 0;                         }                         else                                 code = fgetc(file);                 }                 // closing the file                 fclose(file);         }         // if file doesn't exists         else{                 printf("File %s not found !!!\n", filename);         } }   Thank you!!

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

In this c program. Please explain every line of this code. Thank you

Source Code:

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

// returns decoded character for given code and its count
char decode(char code, int count){
        char data[][6] = {
                "@.?1", "ABC2", "DEF3", "GHI4", "JKL5",
                "MNO6", "PQRS7", "TUV8", "WXYZ9"
        };

        int index;

        if(code == '*')
                return '\n';

        if(code == '#')
                return ' ';

        if(code == '0')
                return '0';

        if(code == '7' || code == '9')
                count = (count-1) % 5;
        else
                count = (count-1) % 4;

        index = (int)(code - 49);

        return data[index][count];
}

// MAIN PROGRAM
int main(){
        char filename[20];
        char code;
        char prevCode;
        int count = 0;

        // taking filename as user input
        printf("Enter input filename: ");
        scanf("%s", filename);

        // opening file in read mode
        FILE *file = fopen(filename, "r");

        // if file exists
        if(file){

                // reading file char by char
                code = fgetc(file);
                
                while(code != EOF){

                        if(count == 0){
                                prevCode = code;
                        }

                        if(prevCode == code){
                                count++;
                                code = fgetc(file);
                        } 
                        else if(count != 0){
                                if(prevCode != ' ')
                                        printf("%c", decode(prevCode, count));
                                count = 0;
                        }
                        else
                                code = fgetc(file);
                }

                // closing the file
                fclose(file);
        }

        // if file doesn't exists
        else{
                printf("File %s not found !!!\n", filename);
        }
}

 

Thank you!!

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY