Linux 命令tail手動實現
阿新 • • 發佈:2019-02-02
手動實現一個tail命令.預設輸出十行.假如檔案小於十行,則將檔案全部輸出.也可指定輸出的行數.假如指定的行數超過了檔案行數上限,則完整輸出整個檔案.
#include <iostream> #include <fstream> #include <string> using namespace std; void tail(const char *filename,int count = 10) { int realline = 0; char temp; string stackstr(""); ifstream fd(filename); if(!fd) { cerr<<"open error!"<<endl; return; } while(fd.get(temp)) { stackstr += temp; if(temp == '\n') realline++; } int j = 0; if(realline > count) { while(j < stackstr.length()) { if(count == realline) { cout<<stackstr[j]; } else { if(stackstr[j] == '\n') count ++; } j++; } } else { while(j < stackstr.length()) { cout<<stackstr[j]; j++; } } } int main(int argc,char**argv) { tail("C:\\Users\\fjy\\Desktop\\new.txt",5); return 0; }
tail函式第一個引數指定檔名,第二個引數指定輸出的行數,預設為10.