有关读取文件的异常,请大家帮忙下

有关读取文件的错误,请大家帮忙下!
经过几天的挣扎,终于是把文件读取到了,CODING   如下:
CFileDialog   l_SampleDlg(TRUE,NULL,NULL,OFN_OVERWRITEPROMPT, "Text   Files   (*.txt)|*.txt|Comma   Separated   Values(*.csv)|*.csv|| ");
            int   iRet   =   l_SampleDlg.DoModal();
            CString   l_strFileName;
    CString   strText;
    LPTSTR   lpText;

            l_strFileName   =   l_SampleDlg.GetPathName();
    UINT   Read(   void*   lpBuf,   UINT   nCount   );

    CFile   cSplitFile   ;
    cSplitFile.Open(l_strFileName,   CFile::modeRead);
    int   nFileLen   =   cSplitFile.GetLength();


    static   int   position   =   0;

    int   ret   =   cSplitFile.Read(lpText,nFileLen);

    cSplitFile.Close();

    m_Input   =   lpText;
    UpdateData(FALSE);


            if(iRet   ==   IDOK)
                    MessageBox(l_strFileName);
            else
                    MessageBox( "No   File   Selected! ");

}
可是问题出现了,读的时候会出现多余的奇怪字,例如:
phone   number:   15921318209
phone   number:   12
phone   number:   14
phone   number:   155
phone   number:   1593 "刯辳 "----这两个字本来是没有的,但是现在居然出现了.
还有个问题就是,如果我读取的文件要比这个稳当短,那么,就只能覆盖掉那个长文件的一部分字,其他的还是保留,例如:
wahahahahahahahah21318209
phone   number:   12
phone   number:   14
phone   number:   155
phone   number:   1593刯辳
谁能帮我解决下呀,是不是CODING那里少了点啥?

------解决方案--------------------
lpText = new TCHAR[nFileLen]; //分配一下空间先
int ret = cSplitFile.Read(lpText,nFileLen);

...
delete[] lpText; //释放
lpText = NULL;