C語言:如何抓檔案指定的行數字串啊?急~~~

請問一下,C如何抓指定行數的字串啊?

目前的程式(如下)~~只能抓到第一行~~

如何變成我只要抓第三行呢?而不是第一行或是全部?

請大家幫忙?謝謝~~

1. /* FGETS.C: This program uses fgets to display

2. * a line from a file on the screen. */

3. /* FPRINTF.C: This program uses fprintf to format various

4. * data and print it to the file named FPRINTF.OUT. It

5. * then displays FPRINTF.OUT on the screen using the system

6. * function to invoke the operating-system TYPE command. */

#include <stdio.h>

main( )

{

FILE *stream;

char line[100];

if( (stream = fopen( "fgets.c", "r" )) != NULL )

{

if( fgets( line, 100, stream ) == NULL)

printf( "fgets error\n" );

else

printf( "%s", line);

14. fclose( stream );

}

}

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    你可以這麼做 ..

    FILE *stream;

    char line[100];

    if( (stream = fopen( "fgets.c", "r" )) != NULL )

    {

    for (int i = 0; i < 2; i) <---- 先利用for迴圈跑個二次

    fgets( line, 100, stream )

    if( fgets( line, 100, stream ) == NULL) <---- 這裡就能得到第三行的資料囉

    printf( "fgets error\n" );

    else

    printf( "%s", line);

    fclose( stream );

    }

    }

    這是我想出來的笨方法

    希望對你有幫助 ..

    Source(s): 我自己 :p
  • 1 decade ago

    使用fseek函數

    有現成的函數

    你可以先跑一次計算每行的字數

    然後再算有幾行

    然後再用字數*行數

    在使用fseek直接跳到那邊去

Still have questions? Get your answers by asking now.