问个关于sscanf的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 10:38:21
{
CString allstr,m_a,m_b,m_c;
allstr=_T("390.0 392.0 392.0");
sscanf(allstr,"%f%f%f",m_a,m_b,m_c);
CDC *pDC=GetDC();
CClientDC dc(this);
dc.TextOut(0,10,allstr,allstr.GetLength());
dc.TextOut(0,20,m_a,m_a.GetLength());
dc.TextOut(0,30,m_b,m_b.GetLength());
dc.TextOut(0,40,m_c,m_c.GetLength());
dc.TextOut(0,50,"over");
}
为什么得到的m_a,m_b,m_c是空的?
dc.TextOut(0,20,m_a,m_a.GetLength());
dc.TextOut(0,30,m_b,m_b.GetLength());
dc.TextOut(0,40,m_c,m_c.GetLength());
这三行没显示

CString是类,不能直接用在sscanf中
可以这么改改试试~:)
float f_a,f_b,f_c;
CString allstr,m_a,m_b,m_c;
allstr=_T("390.0 392.0 392.0");
sscanf(allstr,"%f%f%f",&f_a, &f_b, &f_c);
m_a.Format("%f",f_a);
m_b.Format("%f",f_b);
m_c.Format("%f",f_c);
...

m_a,m_b,m_c 不是float型根本就没有得到值 sscanf(allstr,"%f%f%f",m_a,m_b,m_c);
落掉了取地址符号&
就像一楼那样定义为 float型的才可以 在输出的时候TextOut里须是char或者cstring型