very easy
CStdioFile txtFile;
txtFile.Open("youfile.txt",CFile::modeRead);
CString str;
txtFile.ReadString(str);//读第一行
txtFile.RdadString(str);//读第二行str.TrimLeft();
CString s1 = str.SpanIncluding("0123456789.");//如果数字和其他字符混在一起也能区分float fvar = atof((LPCTSTR)str);txtFile.Close();给分吧?

解决方案 »

  1.   

    假如数字是较长的一个数,如19981021,可以吗?
    另外,“txtFile.RdadString(str);//读第二行”中是笔误吧?用StadioFile就可以读行了吗?那要是指定只读第n行怎么办,让就依次来吗?
      

  2.   

    to Tasehouny:
    我也想给你分呀,你也帮我解决了问题! :)
    ...
    真的要要分么?!
    别当真,我开玩笑的,呵呵!
      

  3.   

    标准 MFC 里并没有提供直接读取文本文档第 n 行的方法,老老实实一行行读吧! :P
    看 Tasehouny 那么大方的份上,我也贴一段验证字符串是否为合法数字的代码吧!
    ********************
    try
    {
    CString szNumText = "7.8e+2";
    _variant_t variantValue;
    variantValue.SetString(LPCTSTR(szCurrText));
    double fValue = (float)variantValue;
    }
    catch(...)
    {
    MessageBox(NULL, _T("数字不合法."), _T("提示"), MB_OK);
    }
    MessageBox(NULL, _T("数字合法."), _T("提示"), MB_OK);
    **********************
    要增加容错性,如去除空格等,可以自己加代码!
      

  4.   

    都任意行也很简单啊!
     int n=5;//例如读第五行
     int i=0;
    where(txtFile.ReadString(str))
    {
        i++;
       if(i==n)  break;
    }if(i!=n) 
    {
    ....报告错误!
    }txtFile.Close();