Как добавить число перед каждой строкой на языке C

#include <stdio.h>

int main (int argc, char **argv) {

    int c, last = 0; /* c must be type int, not char to match EOF */
    size_t ln = 1;      /* use size_t for counters */
    /* use filename provided as 1st argument (stdin by default) */
    FILE *fp = argc > 1 ? fopen (argv[1], "r") : stdin;

    if (!fp) {  /* validate file open for reading */
        perror ("file open failed");
        return 1;
    }
    printf ("%06zu ", ln++);            /* output line 1 number */
    while ((c = getc(fp)) != EOF) {     /* read each character */
        if (last)                       /* test if last set */
            putchar (last);             /* output all characters */
        if (last == '\n')               /* test if last is newline */
            printf ("%06zu ", ln++);    /* output next line number */
        last = c;                       /* set last to c */
    }
    putchar (last);                     /* output final character */
    if (last != '\n')                   /* check POSIX eof */
        putchar('\n');                  /* tidy up with newline */
    if (fp != stdin)                    /* close file if not stdin */
        fclose (fp);

    return 0;
}
Hurt Heron