2016-11-23 288 views
0

我试图解析字符串成以下格式的字符和多个花车:正确使用sscanf_s

char b; 
float x = 0.0f; 
float y = 0.0f; 
float z = 0.0f; 
int result = sscanf(lineHeader,"%c %f %f %f", &b, &x, &y, &z); 

但是:

v 1.00000 1.00000 1.00000 

原来使用sscanf我可以这样做,我试图消除一个无关的问题,这需要我使用sscanf_s

如果我只是改变代码:

int result = sscanf_s(lineHeader,"%c %f %f %f", &b, &x, &y, &z); 

我得到一个异常说明的无符号整数预期。 sscanf_s使用不同的格式来解析字符串吗?

回答

1

the documentationsscanf_s%c转换说明需要一个额外的参数检查的缓冲区大小:

int result = sscanf_s(lineHeader,"%c %f %f %f", &b, rsize_t{1}, &vertex.x, &vertex.y, &vertex.z); 
//        It's a single char ^^^^^^^^^^ 
+0

谢谢,这是完美的。 –

+0

@IanYoung差不多。我忘了演员'rsize_t' :) – Quentin

+0

再次感谢,那完全解决了问题:) –