簡體   English   中英

在C中打印數字行

[英]Printing Number Lines in C

我嘗試讀取文件,然后用它們打印數字行。 但是我不知道如何同時打印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 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.

改用fgets而不是一次讀取一個字符來獲取整行呢?

char input[256];
int line = 1;

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

您有一個很好的方法,盡管將最后一個字符保留在變量中可能很有用。

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

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

        putchar (c);
        prec = c;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM