文件格式如下: 23 34 23 11.3333 11.3333 11.3333
 1 2696 33.9763
 0.75 16 42
第一行是空行,没有数据~~~
下面是我参考的代码,没有实现读取功能,那位高手看看给更改一下,或指教一下~~
char* pFname = "C:\\changan\\sdesign\\BAS.DAT"; CStdioFile csFileName;
if(!csFileName.Open(pFname, CFile::modeRead | CFile::typeText))
{
acutPrintf("\n打开文件错误");
return;
} CString csLine;
csFileName.ReadString(csLine);

解决方案 »

  1.   

    fscanf即可
    如果得到的是字符串,用sscanf,如
    sscanf(csLine,"%f %f",&f1,&f2);
    如果不知道有多少个float
    可以atof后移到下一个空格后再atof知道字符串结束
      

  2.   

    CString csLine;
    while(csFileName.ReadString(csLine))
    {
    CString csFloat;
    int i=0;
    while(AfxExtractSubString(csFloat, csLine, i++, ' '))
    //float f=atof(csFloat);
    MessageBox(csFloat);
    }如果要转换为float,用//后的atof
    如果是已知前面是空格,可int i=1;开始
      

  3.   

    CString st1,st2,st3,st4,st5,st6;
    我怎么把读取出的csFloat的数值分别付给上面定义的字符串呢?
    //float f=atof(csFloat);==这里我怎么才能把csFloat的数值分别付给st1,st2,st3,st4,st5,st6呢?例,csFloat显示的内容是1110.3333330.3333330.333333,我怎么实现st1=1,st2=1,st3=1,st4=0.333333,st5=0.333333,st6=0.333333