[問題] 讀大量內容檔案,怎麼讀比較快
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Microsoft Visual Studio .NET 2010 C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
有無其他寫法,使讀檔案比較快?
餵入的資料(Input):
CSV檔案(內容由龐大的數值構成)
檔案內容如下:
----------------------------
200
1,3,2,.....,
2,55,898,977,2...,
3,878,78,21,.....,
..
200,55,897,456,...,
----------------------------
第一行為檔案數目,200代表:每一行會有200個值(中間由逗號隔開),然後總共200行
假設檔案數目為200,代表會設buffer[200][200]
目前作法主要是利用
ifstream fina(name) 讀檔
getline 一次讀一整行
istringstream stream()
並用逗號區分,然後利用迴圈將每一行每個值各自丟入array中
但因為檔案太大,約6000筆,即buffer[6000][6000]
檔案跑完,約花了1分20秒,感覺很久,不知道有無其他讀法能夠更快?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.110.234
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1403678860.A.766.html
→
06/25 14:56, , 1F
06/25 14:56, 1F
推
06/25 15:07, , 2F
06/25 15:07, 2F
參考網路上其他人說法,改用fgets,然後進行每一行的字串分割
由"約1分20秒"改善成"約25秒"
希望有更好的加強辦法^^~謝謝
※ 編輯: hfuman (140.115.110.234), 06/25/2014 16:14:53
→
06/25 17:05, , 3F
06/25 17:05, 3F
不好意思~~沒學過~我再花時間了解
推
06/25 18:33, , 4F
06/25 18:33, 4F
不好意思~~沒學過~我再花時間了解
推
06/25 18:36, , 5F
06/25 18:36, 5F
→
06/25 18:37, , 6F
06/25 18:37, 6F
→
06/25 18:38, , 7F
06/25 18:38, 7F
我現在就是這樣,不然檔案太多,又要分割,原本更慢
※ 編輯: hfuman (59.102.152.119), 06/25/2014 20:11:19
→
06/25 22:39, , 8F
06/25 22:39, 8F
→
06/25 22:40, , 9F
06/25 22:40, 9F
推
06/29 10:06, , 10F
06/29 10:06, 10F
→
06/29 10:07, , 11F
06/29 10:07, 11F
→
06/29 12:31, , 12F
06/29 12:31, 12F
→
06/29 12:32, , 13F
06/29 12:32, 13F
→
06/29 12:32, , 14F
06/29 12:32, 14F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章