[問題] 如何知道一個檔案有幾行

看板C_and_CPP作者 (CS1DADA)時間13年前 (2011/06/10 09:35), 編輯推噓0(0012)
留言12則, 3人參與, 最新討論串1/4 (看更多)
小弟目前想到的是使用fgetchar() 計算一個file中有多少個'\n', 根據'\n'的個數有多少來算行數 不知道有沒有更快或是不同的想法呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.69.33

06/10 09:38, , 1F
wc -l
06/10 09:38, 1F

06/10 09:41, , 2F
有不是使用指令而是實際去讀檔求行數的方法嗎
06/10 09:41, 2F

06/10 10:05, , 3F
如果你用c++,直接使用getline和string去讀檔,就可以求
06/10 10:05, 3F

06/10 10:05, , 4F
行數
06/10 10:05, 4F

06/10 10:07, , 5F
如果你用c,又不知道怎麼實作getline功能,實際上fgetchar
06/10 10:07, 5F

06/10 10:07, , 6F
是一個簡單的選擇.
06/10 10:07, 6F

06/10 11:07, , 7F
補充一點,c可以用fgets去算,但是char array大小要開足喔
06/10 11:07, 7F

06/10 15:14, , 8F
while(EOF!=(c=fgetc(fp))){ if(c=='\n') line++; }
06/10 15:14, 8F

06/10 15:15, , 9F
阿...沒看內文就回 拍謝
06/10 15:15, 9F

06/10 15:16, , 10F
可以用setvbuf 把 fp 的 buffer 設大一點
06/10 15:16, 10F

06/10 15:17, , 11F
setvbuf(fp, buf, _IOFBF, buf_size);
06/10 15:17, 11F

06/10 15:27, , 12F
=..=設定好fp的緩衝區,還是要讀檔吧
06/10 15:27, 12F
文章代碼(AID): #1DyNJPvO (C_and_CPP)
文章代碼(AID): #1DyNJPvO (C_and_CPP)