[問題] c 讀檔的問題 fscanf

作者: es86016 (阿誠)   2016-10-25 00:43:18
如果我已經 為一個動態陣列 申請memory的位置 令他為 G[][]
FILE *gtxt;
gtxt=fopen("g.txt","r");
for(int i=0;i<K;i++)
for(int j=0;j<N;j++)
{
fscanf(gtxt,"%d",&G[i][j]);
這樣讀出來的G會錯 假設我檔案只有0或者1 讀出來有幾行會變成
235222 0 0 0 0 這種大數字
int tt;
fscanf(gtxt,"%d",&tt);
G[i][j]=tt;
這樣就不會錯 為什麼呢 ??
}
幫解惑~~~ 感謝!
作者: LPH66 (-6.2598534e+18f)   2016-10-25 01:07:00
你的二維陣列怎麼申請的?
作者: stupid0319 (徵女友)   2016-10-25 01:12:00
動態陣列,令他為G[][],試問第一維陣列多大?大概是malloc(K*N*sizeof(int));這樣申請的
作者: es86016 (阿誠)   2016-10-25 01:27:00
MALLOC 去申請的 陣列大小 K*N
作者: OPIV (Monitor)   2016-10-25 02:25:00
int** 和 int[][] 是不一樣的啊…
作者: suwako   2016-10-25 07:40:00
能不能貼上完整的code並附上g.txt 這樣我們比較容易看
作者: stupid0319 (徵女友)   2016-10-25 07:42:00
fscanf(gtxt,"%d",G[i]+j); 改成這樣呢?第一次看到用指標取值之後再取址得到原指標
作者: suwako   2016-10-25 08:56:00
我這樣寫起來是沒問題的阿 我覺得你問題是錯在別的地方
作者: es86016 (阿誠)   2016-10-25 13:53:00
我找到問題在哪了 G.txt 內容沒有我程式陣列大小這麼多謝謝各位 浪費各位的時間了QQ
作者: suwako   2016-10-25 15:21:00
下次建議你附上全部資料 問題通常都出在你覺得對的地方

Links booklink

Contact Us: admin [ a t ] ucptt.com