2012-01-13 12 views
0

最後の行からテキストファイルの最後の10行を読み込むにはどうすればよいですか?あなたはCでいくつかのアイデアを持っていますか?テキストファイルをcで逆読み

+0

循環キューを使用します。 –

+0

ファイルの終わりに達するまで、私はそれぞれのcharを見ます。どのくらい多くのcr/lfを通過したかを追跡してから、下から下に向かって行を読み込み、あなたのcr/lf数が合計よりも10少ない場合。 – Ted

+0

@Cody Grey:どうすればいいのか分かりません。 1つの簡単な方法は、私は知っている、すべてのファイル行を読んで、次に配列にある最後の10行を表示する? –

答えて

2

バッファ内のファイルから最後のnバイトを読み込む必要があります。たとえば、ファイルから最後のBUFFER_SIZEバイトを読み取るには、stdioを使用して次のようにします。

#define BUFFER_SIZE = 4096; 

char buffer[BUFFER_SIZE]; 
FILE* file = fopen("filename", "rb"); 
size_t bytesRead = -1; 

if(file) { 
    fseek(file, BUFFER_SIZE, SEEK_END); 
    bytesRead = fread(buffer, sizeof(char), BUFFER_SIZE, file); 

    /* Process the buffer here */ 
} 

fclose(file); 
file = NULL; 
関連する問題