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 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.
4

2 に答える 2

4

fgets一度に1文字ずつ読み取るのではなく、行全体を取得するために、代わりに使用するのはどうですか?

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 に答える