cout.txt是:
4.0000000e+000 3.0000000e+000
9.0000000e+000 3.0000000e+000
1.1000000e+001 2.2000000e+001
1.1800000e+002 2.1000000e+001
1.1800000e+002 2.8000000e+001
1.4000000e+001 3.4000000e+001
1.0000000e+001 5.7000000e+001
3.0000000e+000 5.8000000e+001
就是读取这些数值时,不对。
但写成
4 3
9 3
就对了 。
为什么???
我的目的是读取cout.txt文件,数值存放在n*2的数组里,而且返回数组的行数n的值。
这里cout.txt就是那种1.1000000e+001 形式,但实际上全是整数。这是matlab存储的。
如果在matlab存放
4 3
9 3
在txt文件里,在txt里依旧显示的是
4 3
9 3。也可以的。
再此,我要编写的程序,所以不能手动的实现数据的保存,只能是matlab的程序语句。
如果哪位高手会的话,请帮我解决一下。再此谢谢了。我的email是:zhaoweilinghappy@126.com
程序如下:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <iomanip.h>
#include <math.h>
#include <fstream.h>
#define NUMBER2 10
void bmptext(double **p,int &corner_num)
{
int i,j;
double x1,x2;
//int corner_num;
i=0;
ifstream fread("路径\\cout.txt");
while (!fread.eof())
{
fread>>x1>>x2;
p[i][0]=x1;
p[i][1]=x2;
i++;
}
corner_num=i;
// return corner_num;
}
void main()
{
int i;
double **corn=new double *[NUMBER2];
for(i=0;i<NUMBER2;i++)
corn[i]=new double[2];
for(i=0;i<NUMBER2;i++)
{
corn[i][0]=0;
corn[i][1]=0;
}
int corner_num=0;
bmptext(corn,corner_num);//读取角点区域提取后的角点区域网格序号
for(i=0;i<NUMBER2;i++)
cout<<corn[i][0]<<setw(15)<<corn[i][1]<<endl;
cout<<corner_num<<endl<<endl;
cout<<"e"<<endl;
}