它是一個微軟面試問題。用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