2016-11-23 52 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

再次感謝,那完全解決了問題:) –