[問題] fscanf讀txt檔大量數值錯誤問題
開發平台(Platform): VC++
問題(Question):
使用fscanf讀取txt檔內的數值(double)並放入陣列
當fscanf執行到一定次數程式會崩潰
餵入的資料(Input):
.txt檔 內容為單純數值用\t與\n分隔
Ex:
120.25 15687 0.568
4568 452.5 213.111
預期的正確結果(Expected Output):
讀入所有資料
錯誤結果(Wrong Output):
windows已觸發XXX.exe之中斷點
http://imgur.com/Pf3qYvV

程式碼(Code):(請善用置底文網頁, 記得排版)
for (i = 0; i < 8; i++)
for (j = 0; j < 1024; j++)
fscanf(f, "%lf", &matrix[i][j];
補充說明(Supplement):
buffer是沒問題的,用動態配置宣告
有另外直接寫入讀出測試過
fscanf的行為也正確
約執行8*900次是沒問題的,數值也正確
但大概在8*97X次時,就會發生不明的崩潰
不知道有沒有人遇過一樣的問題
或是有更好的讀法
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 27.243.75.56
→
03/12 11:14, , 1F
03/12 11:14, 1F
→
03/12 11:23, , 2F
03/12 11:23, 2F
→
03/12 12:05, , 3F
03/12 12:05, 3F
→
03/12 12:38, , 4F
03/12 12:38, 4F
→
03/12 14:30, , 5F
03/12 14:30, 5F
推
03/13 20:32, , 6F
03/13 20:32, 6F
→
03/13 20:33, , 7F
03/13 20:33, 7F
上面的CODE是直接打的,漏括號了,原CODE沒漏
下面是我動態宣告的方式(原CODE是double)
int **data;
data = (int**)new char [height * sizeof(int *) + width * height * sizeof(int)];
for (i = 0; i < height; i++)
data[i] = (int *)data + height + i * width;
問題應該不是出現在BUFFER
我有用迴圈直接給值寫滿整個BUFFER,再讀出確認
是沒有問題的
※ 編輯: ShoPeter 來自: 27.243.75.56 (03/14 14:06)
推
03/14 14:39, , 8F
03/14 14:39, 8F
推
03/14 15:02, , 9F
03/14 15:02, 9F
→
03/14 15:03, , 10F
03/14 15:03, 10F
→
03/14 15:03, , 11F
03/14 15:03, 11F
→
03/14 15:03, , 12F
03/14 15:03, 12F
→
03/14 15:05, , 13F
03/14 15:05, 13F
推
03/14 21:56, , 14F
03/14 21:56, 14F
→
03/14 21:57, , 15F
03/14 21:57, 15F
→
03/14 21:59, , 16F
03/14 21:59, 16F
→
03/14 22:03, , 17F
03/14 22:03, 17F
推
03/18 18:26, , 18F
03/18 18:26, 18F
→
03/18 18:27, , 19F
03/18 18:27, 19F
→
03/18 18:27, , 20F
03/18 18:27, 20F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):