facet normal 3.368912e-002 1.910605e-001 9.810000e-001
    outer loop
      vertex 1.026845e+000 2.821233e+000 5.241527e+001
      vertex 3.676627e-016 3.002293e+000 5.241527e+001
      vertex 0.000000e+000 -4.898425e-016 5.300000e+001
    endloop
  endfacet
像这样的文本,如果要读取里面的浮点数,将其存起来
我用
CStdioFile file;
file.ReadString(ch,59);来读取每一行,但怎么将每行的三个数分别取出
存到一数组中

解决方案 »

  1.   

    试试sscanf(str, "%s %e %e %e", temp, &f1, &f2, &f3);
      

  2.   

    用ReadString(str)读出一整行,然后把这一行按空格截成一个个字符串,判断每一个字符串,看是不是以数字开头,是则放入数组按空格截取的函数如下(转载)给你一个函数分割字符串的在数组中
    名称:     _splite
    作用:     将字符串分割为字符数组
    参数:          CString strSrc 源字符串
    参数:          CString strSplite 分割符
    参数:          CStringArray & arDes 目标数组
    返回:          static bool   false 为分割失败 bool _splite(CString strSrc,CString strSplite,CStringArray & arDes)
    {
             arDes.RemoveAll();//初始化
             while(strSrc.GetLength()>0){
                       int pos = strSrc.Find(strSplite,0);//定位分割符
                       CString strLeft;
                       if(pos!=-1){
                                //定位成功
                                strLeft = strSrc.Left(pos);//前面的字符串为新的分割单元
                                arDes.Add(strLeft);
                                strSrc = strSrc.Right(strSrc.GetLength()-pos-strSplite.GetLength());//指定新的分割对象
                                if(strSrc.IsEmpty()){
                                       //如果已空
                                         arDes.Add(strSrc);//剩下的字符串为分割单元
                                         break;
                                }
                       }else{
                                //定位不成功
                                strLeft = strSrc;//将原字符串作为分割单元入目标数组
                                arDes.Add(strLeft);
                                strSrc.Empty();//清空原字符串
                       }
             }
             return arDes.GetSize()>1;//如果分割单元数量大于1定义为操作成功
    }
      

  3.   

    用strtok函数,此函数可以把包含确定分割符拆成一段一段的元素。
    char * strtok(char *string1,char *string2);
    string1就是包含了分割符的原字符串
    string2就是token字符
    先把文件读入一行到一个字符串
    char string[]="你读的一行字符串";
    char seps[]=" ";---->空格字符
    char *substring;
    substring=strtok(string,seps);
    然后在判断第一个字符是否为数字。