在C中打印数字行

and*_*d93 1 c numbers lines

我尝试读取文件然后用它们打印数字行.但我不知道如何在同一时间打印lorem ipsum.因为我不太了解C中的打印功能.

这是我的代码:

#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++;
}
}

}
Run Code Online (Sandbox Code Playgroud)

我的lpsm 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.

我想要的是:

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.

Som*_*ude 5

那么使用它fgets来获取整行而不是一次读取一个字符呢?

char input[256];
int line = 1;

while (fgets(input, sizeof(input), xfile) != NULL)
{
    printf("%2d. %s", line++, input);
}
Run Code Online (Sandbox Code Playgroud)

  • 只要确保文件中的行不长于输入,否则可能会得到错误的结果. (5认同)