0
如何從最後一行開始的文本文件中讀取10個最後一行?你對c有一些想法嗎?反向讀取文本文件中的c
如何從最後一行開始的文本文件中讀取10個最後一行?你對c有一些想法嗎?反向讀取文本文件中的c
您必須從緩衝區中的文件中讀取最後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;
使用循環隊列。 – 2012-01-13 11:16:11
我會看看每個字符,直到你到達文件的末尾。跟蹤你通過的cr/lf的數量,然後從底部向後讀取直線,直到你的cr/lf數量比總數小10 ... – Ted 2012-01-13 11:24:01
@Cody Gray:我不知道我該怎麼做。我知道一個簡單的方法,讀取所有文件行,然後顯示數組中的最後10行? – 2012-01-13 11:25:22