注册 登录
编程论坛 VC++/MFC

关于CString::GETAT提取问题,知道的朋友看下问题出在哪

whp1124 发布于 2011-04-06 11:05, 1630 次点击
看帖的朋友你好:
为什么我用GETAT,却提取不了指定位数的字符。
比如str="abcdefg",我运行后在B对话框还是显示abcdefg


CString str; //全局变量
void CZzDlg::OnButton1()
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    str=m_e1;
    str.GetAt(1)&&str.GetAt(3)&&str.GetAt(5);
    m_e2=""+str+"";
    UpdateData(FALSE);

}
源代码
只有本站会员才能查看附件,请 登录
2 回复
#2
yuccn2011-04-06 13:36
你的本意是这样吧:
void CZzDlg::OnButton1()
{
    UpdateData(TRUE);
    str = m_e1.GetAt(1);
    str += m_e1.GetAt(3);
    str += m_e1.GetAt(5);
    m_e2=""+str+"";
    UpdateData(FALSE);
}

#3
whp11242011-04-06 14:33
对,是这个意思,
但是如果我现在是做串口通信,没有m_e1这个控件变量,单片机返回了一个str,比如"01 03 01 02 00 00 00 00 01"
我要提取第14.17.20.23.26位,并将25位的"0"用SETAT替换为".";将他显示在m_e2这个窗口也就是"0000.1"
我直接写
    str =str.GetAt(14);
    str +=str.GetAt(17);
    str += str.GetAt(20);
    str +=str.GetAt(23);
    str += str.SetAt(25,'.');
    str +=str.GetAt(26);

    - 0 error(s), 0 warning(s)
但一运行就说应用程序错误。麻烦再指点下
1