C++ 用C++;用/?

C++ 用C++;用/?,c++,wavefront,C++,Wavefront,如何解析此表单中的文件 我的文件是这样的 v -1.000000 -1.000000 -1.000000 v -1.000000 1.000000 -1.000000 vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 f 2//1 3//1 1//1 f 4//2 7//2 3//2 我的解析代码如下: ifstream fin; string reader; while(fin>>reader) {

如何解析此表单中的文件 我的文件是这样的

v -1.000000 -1.000000 -1.000000
v -1.000000 1.000000 -1.000000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
f 2//1 3//1 1//1
f 4//2 7//2 3//2
我的解析代码如下:

ifstream fin;
string  reader;     
while(fin>>reader)

  {       
     if(reader == "v"){
      vec3 vertex;
      fin>>vertex.x>>vertex.y>>vertex.z;
      out_vertices.push_back(vertex);

     } else if(reader == "vn"){
     vec3 normal;
     fin>>normal.x>>normal.y>>normal.z;
     out_normals.push_back(normal);
     }else if(reader== "f"){
       vec2 facet;
       vec3 _normal,_vertex;
       fin>>_vertex.x>>_vertex.y>>_vertex.z >>_normal.x>>_normal.y>>_normal.z;
       facet.normal = _normal;
       facet.vetex = _vertex;
       out_facets.push_back(facet);
     }

 }

它怎么能不读f开头的那行?有什么好办法吗?

这种文件格式看起来很熟悉。您正在编写自己的文件格式吗?@Asesh它很可能是一个用于加载的.obj文件models@JayWaiTan我也是这么想的,但不确定是否允许读取注释,以查看解析后的数字和/是否为next,是否为not/don parsenum@138是正确的,您正在将“/”中的数据解析为浮点数。另外,您应该将其读取为int,并将其用作索引。