
OBJ文件定义顶点,纹理坐标和法线的x,y,z三元组中的面,例如:
f 1.43//2.43 1.11//2.33 3.14//0.009
我不关心当前的纹理坐标.在C中,解析这一行的简单方法是声明如下:
sscanf(buf,"f %d//%d %d//%d %d//%d",&temp[0],&temp[1],&temp[2],&temp[3],&temp[4],&temp[5]);
显然,Nsstrings不能在没有首先将它们转换为C风格的字符串的情况下在sscanf()中使用,但我想知道是否有一种更优雅的方式来执行此 *** 作而不进行这样的转换.
解决方法 NSScanner类可以解析字符串中的数字,但它不能用作sscanf的替代品.编辑:这是使用它的一种方法.您还可以将/放入要跳过的字符列表中.
float temp[6];Nsstring *objContent = @"f 1.43//2.43 1.11//2.33 3.14//0.009";NSScanner *obJscanner = [NSScanner scannerWithString:objContent];// Skip the first character.[obJscanner scanString:@"f " intoString:nil];// Read the numbers.NSInteger index=0;BOol parsed=YES;while ((index<6)&&(parsed)){ parsed=[obJscanner scanfloat:&temp[index]]; // Skip the slashes. [obJscanner scanString:@"//" intoString:nil]; NSLog(@"Parsed %f",temp[index]); index++;} 总结 以上是内存溢出为你收集整理的Sscanf在Objective-C中等效全部内容,希望文章能够帮你解决Sscanf在Objective-C中等效所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)