Count No of Lines, Blank
Lines, Comments in a given Program
#include
#include
void main(int argc, char* argv[])
{
int line_count = 0, n_o_c_l = 0, n_o_n_b_l = 0, n_o_b_l = 0, n_e_c = 0;
FILE *fp1;
char ch;
fp1 = fopen(argv[1], "r");
while ((ch = fgetc(fp1))! = EOF)
{
if (ch == '\n')
{
line_count++;
}
if (ch == '\n')
{
if ((ch = fgetc(fp1)) == '\n')
{
fseek(fp1, -1, 1);
n_o_b_l++;
}
}
if (ch == ';')
{
if ((ch = fgetc(fp1)) == '\n')
{
fseek(fp1, -1, 1);
n_e_c++;
}
}
}
fseek(fp1, 0, 0);
while ((ch = fgetc(fp1))! = EOF)
{
if (ch == '/')
{
if ((ch = fgetc(fp1)) == '/')
{
n_o_c_l++;
}
}
}
printf("Total no of lines: %d\n", line_count);
printf("Total no of comment line: %d\n", n_o_c_l);
printf("Total no of blank lines: %d\n", n_o_b_l);
printf("Total no of non blank lines: %d\n", line_count-n_o_b_l);
printf("Total no of lines end with semicolon: %d\n", n_e_c);
}
Output
Total no of lines: 204
Total no of comment line: 19
Total no of blank lines: 11
Total no of non blank lines: 193
Total no of lines end with semicolon: 66
Reverse the Contents of a
File and Print it
#include
#include
#include
long count_characters(FILE *);
void main(int argc, char * argv[])
{
int i;
long cnt;
char ch, ch1;
FILE *fp1, *fp2;
if (fp1 = fopen(argv[1], "r"))
{
printf("The FILE has been opened...\n");
fp2 = fopen(argv[2], "w");
cnt = count_characters(fp1);
fseek(fp1, -1L, 2);
printf("Number of characters to be copied %d\n", ftell(fp1));
while (cnt)
{
ch = fgetc(fp1);
fputc(ch, fp2);
fseek(fp1, -2L, 1);
cnt--;
}
printf("\n**File copied successfully in reverse order**\n");
}
else
{
perror("Error occured\n");
}
fclose(fp1);
fclose(fp2);
}
long count_characters(FILE *f)
{
fseek(f, -1L, 2);
long last_pos = ftell(f);
last_pos++;
return last_pos;
}
Output
The function STRERROR returns a pointer to an ERROR MSG STRING whose contents are implementation defined.
THE STRING is not MODIFIABLE and maybe overwritten by a SUBSEQUENT Call to the STRERROR function.
The FILE has been opened..
Number of characters to be copied 203
**File copied successfully in reverse order**
.noitcnuf RORRERTS eht ot llaC TNEUQESBUS a yb nettirwrevo ebyam dna ELBAIFIDOM ton si GNIRTS EHT
.denifed noitatnemelpmi era stnetnoc esohw GNIRTS GSM RORRE na ot retniop a snruter RORRERTS noitcnuf ehT
The FILE has been opened..
Number of characters to be copied 203
**File copied successfully in reverse order**
The function STRERROR returns a pointer to an ERROR MSG STRING whose contents are implementation defined.
THE STRING is not MODIFIABLE and maybe overwritten by a SUBSEQUENT Call to the STRERROR function.
No comments:
Post a Comment