在c语言中反向读取文本文件

在c语言中反向读取文本文件,c,linux,file-io,C,Linux,File Io,例如,我如何从一个文本文件中从最后一行开始读取最后10行?你对c语言有什么想法吗?你必须从缓冲区中读取文件的最后n个字节,然后再对该缓冲区进行操作。例如,要从文件中读取最后一个缓冲区大小字节,可以使用stdio执行以下操作: #define BUFFER_SIZE = 4096; char buffer[BUFFER_SIZE]; FILE* file = fopen("filename", "rb"); size_t bytesRead = -1; if(file) { fseek

例如,我如何从一个文本文件中从最后一行开始读取最后10行?你对c语言有什么想法吗?

你必须从缓冲区中读取文件的最后n个字节,然后再对该缓冲区进行操作。例如,要从文件中读取最后一个缓冲区大小字节,可以使用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;

我会查看每个字符,直到文件的末尾。记下你通过了多少次cr/lf,然后从底部向后读,直到你的cr/lf计数比总数少10行…@Cody Gray:我不知道该怎么做。我知道的一个简单方法是,读取所有文件行,然后显示数组中的最后10行?@AliAzimi:你知道如何读取文件的最后一个字节吗?最后10个字节?你知道如何判断最后10个字节是否是最后10行吗?谢谢你,多尔曼,我做到了。