C语言读取txt文件中的数据,printf显示读取的数与txt中存的数不一致,怎么回事
程序代码:
#include <stdio.h> double **array2DI(int col, int row) { double **dst; int i; dst = (double**)malloc(sizeof(double*)*col); dst[0] = (double*)malloc(sizeof(double)*row*col); for (i = 1; i<col; i++) dst[i] = dst[i - 1] + row; return dst; } void arrayFree2DI(double **array) { if (array != NULL) { free(array[0]); free(array); array = NULL; } return; } void main() { int width = 30; int height = 20; double **joint=array2DI(width, height); FILE *fpRead = fopen("BJ.txt", "r"); if (fpRead == NULL) { return 0; } for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { fscanf(fpRead, "%lf ", &joint[y][x]); if (y == 10) { printf("joint[%d][%d]=%4f\n", y + 1, x + 1, joint[y][x]); } } }printf("\n"); for (int x = 0; x < width; x++) { printf("joint[11][%d]=%4f\n", x + 1, joint[10][x]); }printf("\n"); printf("\n"); fclose(fpRead); arrayFree2DI(joint); }
环境是VS2013,结果如图
我的数组矩阵中第11行的数字,为什么两次printf的结果不一样??
我首先定义了一个二维的动态数组,然后用动态数组去读取txt文件中的数字,一共是30*20个,读取的时候,我用了printf,显示的数字是对的,全部读取完毕后,我又用printf显示了某一行,发现和txt中数字有出入