gpt4 book ai didi

C: 只读文件的最后一行。没有循环

转载 作者:太空狗 更新时间:2023-10-29 17:16:52 24 4
gpt4 key购买 nike

使用 C 语言,有没有一种方法可以只读取文件的最后一行,而不用循环读取文件的全部内容?

问题是该文件包含数百万 行,每一行都包含一个整数(long long int)。文件本身可能很大,我估计甚至可达 1000mb。我确信最后一行不会超过 55 位数字,但也可能只有 2 位数字。使用任何类型的数据库都是不可能的……我已经考虑过了。

也许这是一个愚蠢的问题,但作为 PHP 背景的我发现很难回答。我四处寻找,但没有找到任何干净的东西。

目前我正在使用:

if ((fd = fopen(filename, "r")) != NULL) // open file
{
fseek(fd, 0, SEEK_SET); // make sure start from 0
while(!feof(fd))
{
memset(buff, 0x00, buff_len); // clean buffer
fscanf(fd, "%[^\n]\n", buff); // read file *prefer using fscanf
}
printf("Last Line :: %d\n", atoi(buff)); // for testing I'm using small integers
}

这样我循环文件的内容,一旦文件大于 ~500k 行,事情就会变慢......

提前致谢。格言

最佳答案

只是fseekfileSize - 55 并向前阅读?

关于C: 只读文件的最后一行。没有循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13790662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com