2012-01-13 4 views
0

마지막 줄부터 시작하여 텍스트 파일에서 예를 들어 10 줄의 마지막 줄을 읽으려면 어떻게해야합니까? 너는 C로 어떤 생각을 가지고 있니?c의 텍스트 파일을 역방향으로 읽음

+0

순환 대기열을 사용합니다. –

+0

파일 끝에 도달 할 때까지 각 문자를 살펴볼 것입니다. 얼마나 많은 cr/lf를 통과했는지 추적하고, cr/lf 카운트가 총계 10보다 작을 때까지 아래쪽에서 뒤로 라인을 읽습니다. – Ted

+0

@Cody Grey : 어떻게해야합니까? 하나의 간단한 방법은 내가 아는 모든 파일 라인을 읽고 다음 배열에있는 마지막 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; 
관련 문제