1

我尝试读取一个文件,然后用它们打印数字行。但我不知道如何同时打印 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++;
}
}

}

我的 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 sat 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 sat 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。
4

2 回答 2

4

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

char input[256];
int line = 1;

while (fgets(input, sizeof(input), xfile) != NULL)
{
    printf("%2d. %s", line++, input);
}
于 2013-03-03T17:53:22.037 回答
3

您有很好的方法,尽管将最后一个字符保留在变量中可能很有用。

int c;
int b = 1;
int prec = '\n';

while ((c = getc (xfile)) != EOF) {
        if (prec == '\n')
                printf ("%d. ", b++);

        putchar (c);
        prec = c;
}
于 2013-03-03T17:54:14.127 回答