[问题] 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