print_it is a program that i have got from teach yourself c in 21 days. it supposed to print a program listing with line numbers. but instead of printing with everything alligned to the left, everything is severly indented. it is so indented that it cannot print the whole listing because the listing just spreads out to the right. here is an example of what i mean:
1: #include <stdio.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2: blah blah blah
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 3: blah blah blah
Code:
/* print_it.c--This program prints a listing with line numbers! */
#include <stdlib.h>
#include <stdio.h>
void do_heading(char *filename);
int line = 0, page = 0;
int main( int argv, char *argc[] )
{
char buffer[256];
FILE *fp;
if( argv < 2 )
{
fprintf(stderr, "\nProper Usage is: " );
fprintf(stderr, "\n\nprint_it filename.ext\n" );
return(1);
}
if (( fp = fopen( argc[1], "r" )) == NULL )
{
fprintf( stderr, "Error opening file, %s!", argc[1]);
return(1);
}
page = 0;
line = 1;
do_heading( argc[1]);
while( fgets( buffer, 256, fp ) != NULL )
{
if( line % 55 == 0 )
do_heading( argc[1] );
fprintf( stdprn, "%4d:\t%s", line++, buffer );
}
fprintf( stdprn, "\f" );
fclose(fp);
return 0;
}
void do_heading( char *filename )
{
page++;
if ( page > 1)
fprintf( stdprn, "\f" );
fprintf( stdprn, "Page: %d, %s\n\n", page, filename );
}
also, when i change all of the stdprn's to stdout's, the listing is printed just the way it should be on the screen. any ideas? thanks