使用可选参数格式C/C+读取字符串+;
我试图解析波前OBJ文件中的人脸。这些面在文件中逐行指定,格式如下:使用可选参数格式C/C+读取字符串+;,c,string,format,strtok,scanf,C,String,Format,Strtok,Scanf,我试图解析波前OBJ文件中的人脸。这些面在文件中逐行指定,格式如下: f v1/vt1/vn1 v2/vt2/vn2 ... 三联体(v,vt,vn)的序列长度可变。每个三元组用空格分隔,三元组内的每个值用/分隔 到目前为止,使用strtok分离三元组,然后用 sscanf格式%f/%f/%f工作正常。但是,在OBJ文件的规范中,此行可以有一种替代形式,如下所示: f v1//vn1 v2//vn2 ... 在这种情况下,vt缺失,所有三元组中都应该缺失,sscanf解析不起作用 P>是否
f v1/vt1/vn1 v2/vt2/vn2 ...
三联体(v,vt,vn)的序列长度可变。每个三元组用空格分隔,三元组内的每个值用/分隔
到目前为止,使用strtok
分离三元组,然后用
sscanf
格式%f/%f/%f
工作正常。但是,在OBJ文件的规范中,此行可以有一种替代形式,如下所示:
f v1//vn1 v2//vn2 ...
在这种情况下,vt
缺失,所有三元组中都应该缺失,sscanf
解析不起作用
<> P>是否有任何方法可以在C或C++中解析,以避免嵌套<代码> Sttok?< P> > P>我想您可以先使用<代码> %F/%F格式,并检查返回值。如果返回值小于2,则改用
%f/%f/%f
格式,该格式应同时适用于v、vt和vtn。使用。