我是写了一个数字处理的软件。
功能:
要求除去编辑框中和设置中的个位数,和十位数相同的数字。我自己输入数字可以实现,但是当我从记事本里面复制一段数字进编辑框就成了这个样子了,软件运行就不对了,这样还怎么用GetAt()获取字符?下面这是我处理数字的代码:UpdateData(TRUE);
m_nNum2 = m_strNum1.GetLength();
Shi = m_nShi + '0';
Ge = m_nGe + '0';
CString str = m_strNum1;
while((m_nNum2)>=0)
{
if (' ' == m_strNum1.GetAt(0) || 0x0d == m_strNum1.GetAt(0))
{
         m_strNum1 = m_strNum1.Right(m_nNum2-1);
         m_nNum2 -= 1;
}
else
{
if (m_strNum1.GetAt(0) < '0' || m_strNum1.GetAt(0) > '9'||m_strNum1.GetAt(1) < '0' || m_strNum1.GetAt(1) > '9')
{
m_strNum1 = str;
m_strNum2 = _T("警告:输入的数据有误");
UpdateData(FALSE);
return;
}
else
{
if (Shi == m_strNum1.GetAt(0) || Ge == m_strNum1.GetAt(1))
{
m_strNum1 = m_strNum1.Right(m_nNum2-3);
m_nNum2 -= 3;
}
else
{
m_strNum2 += m_strNum1.Left(3);
m_strNum1 = m_strNum1.Right(m_nNum2-3);
m_nNum2 -= 3;
}
}
}
}
m_strNum1 = str;
UpdateData(FALSE);

解决方案 »

  1.   

    从记事本里面复制一段数字进编辑框 后面是不是带了一个回车啊?  那数字要怎么处理?
    UpdateData(TRUE); 编辑框中字符串在m_strNum1 中是怎么存放的?
      

  2.   

    你可以使用CString::Tokenize()以空格和回车换行来拆分字符串,就可以得到各个子串,然后进行下面的比对的逻辑处理过程。
      

  3.   

    谢谢斑竹大解答,我自己找到原因了。
    复制进去的字符串里面是这样存放的:
    比如:
    12 34 56\r\n
    32 54 65\r\n
    43 76 89
    所以判断\r\n就可以了。