标题:C语言读取txt文件中的数据,printf显示读取的数与txt中存的数不一致,怎么回 ...
取消只看楼主
南瓜酱
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-7-16
结帖率:0
已结贴  问题点数:20 回复次数:2 
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中数字有出入
搜索更多相关主题的帖子: 读取 txt printf double int 
2017-07-16 21:59
南瓜酱
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-7-16
得分:0 
回复 3楼 GBH1
是用一个空格间隔的
RJ.rar (937 Bytes)
类似于这样的
2017-07-23 11:54
南瓜酱
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-7-16
得分:0 
回复 2楼 吹水佬
RJ.rar (940 Bytes)
类似于这样的txt文件
2017-07-23 11:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479428-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.354584 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved