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!!
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!!
Step by step
Solved in 2 steps