→ james732: array用malloc或new來配置空間 08/07 17:50
→ james732: 你用int x[很大的數]一定會出問題 08/07 17:51
→ Umagon: 好 我試試看 08/07 17:52
→ Umagon: 會跳出 std::bad_alloc 的錯誤 08/07 17:59
推 james732: 呃那代表你需要的真的太大了orz 08/07 18:01
→ Umagon: 謝謝QQ 08/07 18:05
→ Schottky: 到底是多大,有個數字可以參考嗎? 08/07 18:11
→ Schottky: 20 個檔大可以全部開啟,一起處理,到程式結束時再關閉 08/07 18:12
→ Umagon: 大概450000000 08/07 18:13
→ Umagon: 有試過最後再關閉 可是txt打開卻沒存到 (fprintf "a") 08/07 18:15
推 TeaEEE: 你先把結果寫到另三個檔寫完後再move回來就不用開開關關的 08/07 18:17
→ Schottky: 沒存到? 你有做 error handling 嗎? 08/07 18:19
→ Schottky: 磁碟存取的意外狀況很多,error handling 不可免 08/07 18:19
→ Umagon: 我不確定沒存到是不是這個問題 因為我讓他們共用一個FILE 08/07 18:20
→ Umagon: *Ptr 做法是while sprintf(filename,"%d.txt",i) 08/07 18:21
→ Umagon: 然後Ptr=fopen(filename) 才做fprintf(Ptr,) 08/07 18:22
→ Schottky: ..... 共用是哪招,多用一些啊,pointer 很便宜的 08/07 18:22
→ Umagon: 好QQ 我試試看 因為想說已經空間不夠了還開很多Ptr QQ 08/07 18:24
→ Schottky: 即使是 64-bit 一個 pointer 也才 8 bytes 08/07 18:31
→ Schottky: 20 個 pointer 跟你要開的 4.5 億個 int 是小巫見大巫了 08/07 18:32
→ Schottky: 至於輸出檔,如果是一次性的倒是可以寫完就關 08/07 18:33
→ Umagon: 可以成功 速度有快多了 謝謝S大 還有T大跟j大 08/07 18:48
→ james732: 不用謝啦我什麼都沒幫上忙哈哈哈 08/07 18:49
→ rbufghj9713: 版上的大大果然厲害(抄筆記 08/07 23:16
→ rbufghj9713: 我可以問一下後來實現的方法嗎?是同時開20個檔案, 08/07 23:48
→ rbufghj9713: 然後直接從裡面找嗎? 08/07 23:48
→ ducksky: 沒存到應該是沒下closefile 08/09 20:52
→ mikukonn: 為何不打開第一個檔案一次寫完再開第二個? 08/12 22:36
→ mikukonn: 還是我理解錯誤了? 08/12 22:36