以下是代码,也就是POSITION如何转换成int
         CStringList sl;
POSITION nPos;
nPos = sl.GetHeadPosition();
while (nPos!=NULL)
{
CString str;
str = sl.GetNext(nPos);
                  怎么知道现在第几行?
}

解决方案 »

  1.   

    加个计数CStringList sl;
    POSITION nPos;
    nPos = sl.GetHeadPosition();
    int n = 0;
    while (nPos!=NULL)
    {
    CString str;
    str = sl.GetNext(nPos);
    n++;
    // 第n行
    }
      

  2.   

    有办法把POSITION 转成 int 吗
      

  3.   

    不可以POSITION是指针,只有加计数器才可以知道是第几个
      

  4.   

    凡是CXXXXList的,都无法根据POSITION取得Index,反过来可以,用FindIndex函数,从函数名可以看来,其实它也是顺序查找,没有什么简单方法,它源代码类似下面:
    CStringList sl;
    POSITION nPos;
    nPos = sl.GetHeadPosition();
    int n = 0;
    while (nPos!=NULL)
    {
    sl.GetNext(nPos);
    if (++n == nIndex)
        return nPos;
    }
    return 0;链表就是链表,与数组有本质区别,各有利弊,看实际需要。