Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用可选参数格式C/C+读取字符串+;_C_String_Format_Strtok_Scanf - Fatal编程技术网

使用可选参数格式C/C+读取字符串+;

使用可选参数格式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>是否

我试图解析波前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>是否有任何方法可以在C或C++中解析,以避免嵌套<代码> Sttok?< P> > P>我想您可以先使用<代码> %F/%F格式,并检查返回值。如果返回值小于2,则改用
%f/%f/%f
格式,该格式应同时适用于v、vt和vtn。

使用。