Search code examples
cnumberslines

Printing Number Lines in C


I try to read a file then print the number lines with them. But I don't know how can I print the lorem ipsum in the same time. Because I don't know much about printing functions in C.

Here's my code:

#include <stdio.h>
#include <stdlib.h>
main(){

int c;
int b=1;
//int a[5000]; Shall I use this or any ideas without them?

FILE *xfile;
xfile = fopen("loremipsum.txt", "r"); 

while((c=getc(xfile)) != EOF){
if(c == '\n'){
printf("%d\n", b); /*STUCK IN THERE... HOW TO PRINT LOREM IPSUM WITH NUMBER LINES?*/
//putchar(a);   
b++;
}
}

}

My lorem ipsum:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec vitae quam non risus consectetur aliquet sed rhoncus purus.
Fusce vitae lorem a dui elementum condimentum id id odio.
Quisque eu felis eu diam facilisis mollis sit amet id augue.


Duis lacinia velit et lorem ullamcorper iaculis.
Duis malesuada lacus quis quam congue nec euismod ante condimentum.
Donec dignissim augue vitae nulla dapibus vehicula.

What I want:

1. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2. Donec vitae quam non risus consectetur aliquet sed rhoncus purus.
3. Fusce vitae lorem a dui elementum condimentum id id odio.
4. Quisque eu felis eu diam facilisis mollis sit amet id augue.


5. Duis lacinia velit et lorem ullamcorper iaculis.
6. Duis malesuada lacus quis quam congue nec euismod ante condimentum.
7. Donec dignissim augue vitae nulla dapibus vehicula.

Solution

  • What about using fgets instead, to get whole lines instead of reading one character at a time?

    char input[256];
    int line = 1;
    
    while (fgets(input, sizeof(input), xfile) != NULL)
    {
        printf("%2d. %s", line++, input);
    }