home *** CD-ROM | disk | FTP | other *** search
/ Sams Teach Yourself C in 21 Days (6th Edition) / STYC216E.ISO / mac / Examples / TR / print_it2.c < prev    next >
C/C++ Source or Header  |  2002-04-21  |  984b  |  54 lines

  1. /* print_it.c--This program prints a listing with line numbers! */
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4.  
  5. void do_heading(char *filename);
  6.  
  7. int line, page;
  8.  
  9. int main( int argv, char *argc[] )
  10. {
  11.   char buffer[256];
  12.   FILE *fp;
  13.  
  14.   if( argv < 2 )
  15.   {
  16.      fprintf(stderr, "\nProper Usage is: " );
  17.      fprintf(stderr, "\n\nPRINT_IT filename.ext\n" );
  18.      return(1);
  19.   }
  20.  
  21.   if (( fp = fopen( argc[1], "r" )) == NULL )
  22.   {
  23.        fprintf( stderr, "Error opening file, %s!", argc[1]);
  24.        return(1);
  25.   }
  26.  
  27.   page = 0;
  28.   line = 1;
  29.   do_heading( argc[1]);
  30.  
  31.   while( fgets( buffer, 256, fp ) != NULL )
  32.   {
  33.      if( line % 55 == 0 )
  34.         do_heading( argc[1] );
  35.  
  36.      fprintf( stdout, "%4d:\t%s", line++, buffer );
  37.   }
  38.  
  39.   fprintf( stdout, "\f" );
  40.   fclose(fp);
  41.   return 0;
  42. }
  43.  
  44. void do_heading( char *filename )
  45. {
  46.    page++;
  47.  
  48.    if ( page > 1)
  49.       fprintf( stdout, "\f" );
  50.  
  51.    fprintf( stdout, "Page: %d, %s\n\n", page, filename );
  52. }
  53.  
  54.