一个文本文件xx.txt里面的数据如下所示
121.916321 39.01755
121.916321 39.01755
121.916313 39.01755
121.916298 39.01754
121.916298 39.01754
121.91629 39.01753
121.916283 39.01753
121.916283 39.01752
121.916267 39.01752我想读取将第一列和第二列的数据读取出来,分别存放在数组X[100],Y[100]中,X,Y是双精度类型。
我用ReadString方法可以将每行数据读取出来,然后存放在XX和YY数组中,但是不知道怎么将数据转换为双精度的。
void CMainFrame::OnReadtxt()
{
CStdioFile out;
out.Open(sFileName, CFile::modeRead);
CString s;
CString xx[100];
CString yy[100];
double x[100];
double y[100];
int i,j,vv;
while(out.ReadString(s))
{
if(s.Find(" "))
{
j=s.Find(" ");
xx[i]=s.Left(j);
int vv=s.GetLength();
vv=vv-j-1;
y[i]=s.Mid(j+1,vv);
//x[i]=atof(xx[i]);//这种方法好像不行
i=i+1;
}
} out.Close();
}请大家帮忙看看这段程序有什么问题,最好给我写段完整有效的程序,万分感谢~~
121.916321 39.01755
121.916321 39.01755
121.916313 39.01755
121.916298 39.01754
121.916298 39.01754
121.91629 39.01753
121.916283 39.01753
121.916283 39.01752
121.916267 39.01752我想读取将第一列和第二列的数据读取出来,分别存放在数组X[100],Y[100]中,X,Y是双精度类型。
我用ReadString方法可以将每行数据读取出来,然后存放在XX和YY数组中,但是不知道怎么将数据转换为双精度的。
void CMainFrame::OnReadtxt()
{
CStdioFile out;
out.Open(sFileName, CFile::modeRead);
CString s;
CString xx[100];
CString yy[100];
double x[100];
double y[100];
int i,j,vv;
while(out.ReadString(s))
{
if(s.Find(" "))
{
j=s.Find(" ");
xx[i]=s.Left(j);
int vv=s.GetLength();
vv=vv-j-1;
y[i]=s.Mid(j+1,vv);
//x[i]=atof(xx[i]);//这种方法好像不行
i=i+1;
}
} out.Close();
}请大家帮忙看看这段程序有什么问题,最好给我写段完整有效的程序,万分感谢~~
sscanf(str,"%lf",a);
sscanf(str,"%lf",&a);
我直接赋值 x[i]=a;//我debug时发现x[i]没有获取a值,为什么呢?
我用sscanf(s,"%lf",x[i]);//这样也不行。。希望楼主再给我解答一下。。谢谢了