
将matlab文件改为C++的,读取经纬度,用fread函数读取,但是只有一部分数据是正确的。代码和截图见下面 20
数据文件分别为latitude.dat和longitude.dat。fid1=fopen('longitude.dat','r');mLon=fread(fid1,[14...
数据文件分别为latitude.dat和longitude.dat。
fid1= fopen('longitude.dat', 'r');
mLon=fread(fid1, [14776, 1], 'float32');
fclose(fid1);
fid1= fopen('latitude.dat', 'r');
mLat=fread(fid1, [16901, 1], 'float32');
fclose(fid1);
然后我在VC里改的是这样
FILE *pFlon=fopen("longitude.dat","r");
if(pFlon==NULL)
{
return;
}
float londata[14776];
fread(londata,sizeof(float),14776,pFlon);
fclose(pFlon);
FILE *pFlat=fopen("latitude.dat","r");
if(pFlat==NULL)
{
return ;
}
float latdata[16901];
fread(latdata,sizeof(float),16901,pFlat);
fclose(pFlat);
我在最后一句处设置断点,结果发现有问题
而且latdata和londata数据后半部分都不对
求解答,多谢各位! 展开
fid1= fopen('longitude.dat', 'r');
mLon=fread(fid1, [14776, 1], 'float32');
fclose(fid1);
fid1= fopen('latitude.dat', 'r');
mLat=fread(fid1, [16901, 1], 'float32');
fclose(fid1);
然后我在VC里改的是这样
FILE *pFlon=fopen("longitude.dat","r");
if(pFlon==NULL)
{
return;
}
float londata[14776];
fread(londata,sizeof(float),14776,pFlon);
fclose(pFlon);
FILE *pFlat=fopen("latitude.dat","r");
if(pFlat==NULL)
{
return ;
}
float latdata[16901];
fread(latdata,sizeof(float),16901,pFlat);
fclose(pFlat);
我在最后一句处设置断点,结果发现有问题
而且latdata和londata数据后半部分都不对
求解答,多谢各位! 展开
展开全部
肯定会这样,fread取到的值放到latdata和londata数组,但是你文件中取得数的个数少于数组长度,加上你数组未作初始化,导致后面的数是未知的
更多追问追答
追问
为什么说取得数的个数少于数组长度?
fread里读取次数我设置的和数组长度一样啊....
求解答
追答
你理解错我的意思了,我说的是文件中的float型数的总个数小于你定义的数组长度,所以有部分是正确的,就是从文件获取得到的,但是文件读取完毕后,数组还有一部分没有赋值,就给他一些随机数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询