-1
我寫了一個小程序,用於讀取格式像這樣的文件:的fscanf停止讀取文件,而無需任何理由
2 2
1.0 2.0
5.0 5.1
6.5 3.1
5.1 2.3
3 1
4 1 2 3 5 2
1 4 5 2 6 5
1 4 5 2 3 6
我使用的fscanf讀取前兩個整數和分配數組來存儲所有四個浮點隨後。它工作正常。但是,當「光標」到達包含整數「3 1」的路線,它停止工作以任何理由...
float *c = NULL;
float **coord = NULL;
f = fopen("mesh.dat", "r");
if(f != NULL){
/* the first two integers */
fscanf(f, "%d %d", &n1, &n2);
n = n1*n2;
c = malloc(2*n*sizeof(float));
coord = malloc(2*sizeof(float *));
for(i=0; i<2; i++){ coord[i] = &c[i*n1]; }
/* reading all coordinates */
for(i=0; i<n; i++){ fscanf(f, "%f %f", &coord[0][i], &coord[1][i]); }
/* reading the two integers */
fscanf(f, "%d %d", &n, &t);
printf("n = %d, t = %d\n", n, t);
}
fclose(f);
程序停止在這裏。因爲它不讀取整數「3 1」。
任何想法??我撕裂了我的頭髮試圖理解......
是有原因的,你濫用它。此外,您發佈的代碼不允許解釋發生了什麼問題。你究竟是什麼意思'停止閱讀......? – 2015-03-02 21:07:40
好的,謝謝,我會嘗試用更多的代碼來解釋問題 – user3615636 2015-03-02 21:29:14
您將值讀入n1和n2,然後將n乘以2.請發佈一個工作程序而不是形成不良的碎片,以避免浪費願意幫幫我。 – 2015-03-02 21:55:43