它是一个微软面试问题。用C文件如何从文件中读取最后n行C
阅读最后N行(精确)
那么可能有这么多的方式来实现这一目标,他们几个人可能是:
- >的最简单所有,在第一遍中,计数文件中的行数,第二遍显示最后n行。
- >或者可以为每一行维护一个双向链表,并通过反向遍历链表直到第n个最后一个节点显示最后n行。
- >实施排序尾-n FNAME的东西
- >为了更加优化它我们可具有长度n和动态存储在循环方式,直到我们达到结束每一行双指针的文件。
例如,如果文件中有10行并且想要读取最后3行。那么我们可以创建一个buf [3] []缓冲区数组,并且在运行时将继续使用mallocing并以循环方式释放缓冲区,直到到达最后一行并保留一个计数器以知道当前数组的索引。
任何人都可以请帮助我更优化的解决方案或至少指导我,如果任何上述方法可以帮助我得到正确的答案或任何其他流行的方法/方法这种类型的问题。
最后一个似乎更优化。 – 2013-03-05 05:07:39
看看尾部实施? HTTP://计算器。com/questions/10164597/how-will-you-implement-tail-effective – StarPinkER 2013-03-05 05:47:50
对于额外的点,如果文件少于n行,则返回错误。 – 2013-03-05 10:35:45