推 meimiao:我要讀的就是每行不固定的文字檔>"< 因為不想要每次讀一行 08/21 09:25
→ meimiao:就malloc一次 這樣似乎會變成不同的陣列 而且一直讀檔感覺 08/21 09:26
→ meimiao:比較沒有效率 所以才想要一次做到好:( 08/21 09:26
推 VictorTom:每行不固定, 你要怎麼malloc一次就解決?? 算行數順便計 08/21 09:51
→ VictorTom:算找出最長字數, 然後都malloc成最大的那個?? 08/21 09:52
→ VictorTom:基本上先用fseek+ftell算出檔案大小, 然後用binary mode 08/21 09:53
→ VictorTom:全讀回來在scan裡面的換行, 反正你確定是文字檔的話. 08/21 09:54
→ VictorTom:不然就是先用get整行用的函數loop算行數, 然後開完陣列 08/21 09:55
→ VictorTom:再重讀一遍XD PS. 文字檔不是一定用0d0a換行喔, Linux 08/21 09:56
→ VictorTom:下記得只有0d(還是只有0a)而已, 所以用bin那招要注意:) 08/21 09:57
推 ledia:0a 08/21 09:59
→ VictorTom:對不起....Orz 我老搞不清楚哪個是return哪個是newline 08/21 10:00
→ VictorTom:只知道對應\r\n....Orz 08/21 10:00
推 ledia:沒關係.. 我也沒記起來過 Orz 08/21 10:03
推 meimiao:本來是想要malloc二維 先malloc出行再用迴圈malloc出個別 08/21 10:06
→ meimiao:的長度...二維陣列可以是不同長度嗎???@@ 08/21 10:07
推 VictorTom:你分兩維動態要來的每個維度想多長都是你自己決定的, 08/21 10:18
→ VictorTom:只是比較少見這樣用的, 不小心很容易存取超過吧我猜. 08/21 10:18
推 kaichan:開buffer,讀檔進buffer,自己做一個表示行的結構, 08/21 10:22
→ kaichan:掃過buffer,把每一行的address抓出來,存在你的行結構 08/21 10:23
推 meimiao:意思是 一維陣列看待成兩維嗎?利用strstr找尋\n之類的?? 08/21 10:25
→ kaichan:每一個行結構串起來,你就得到一整個文件的每個行的位置 08/21 10:25
→ adrianshum:要搞這麼 dynamic 的話, 我覺得不如用 linked-list 吧 08/21 10:40
→ adrianshum:那麼第一維就不必預先 malloc 了 08/21 10:40
→ adrianshum:其實樓上的做法也不錯. 為了方便處理, 也可以找出所有 08/21 10:41
→ adrianshum:newline 換成 null, 這麼每行就變成完整的 string 了 08/21 10:42
推 meimiao:謝謝 kaichan的方法好像蠻易了解的 感謝大家的幫忙!!!:D 08/21 10:51
推 VictorTom:a大的方法不錯:) 要另外把string頭記起來就是了, 再看怎 08/21 11:00
→ VictorTom:樣轉存array方便取用, 或者就這樣存著吧XD 08/21 11:00
推 DBoyX:\r回車 \n換行,你把\r想像成印字頭回到要打第一個符的位置 08/22 13:47
推 VictorTom:小弟知道\r\n是return/換行啦, 只是分別是0d0a哪一個, 08/22 18:54
→ VictorTom:還有順序到底是什麼, 每次都搞不清楚....XD 08/22 18:54