,基本上我有這行代碼:混淆sscanf_s
sscanf_s(line.c_str(),
"<float_array id=\"%*s[^\"]\" count=\"%*d\">%[^<]s",
numString);
我餵養它這行文字:
<float_array id="Cube-mesh-positions-array" count="24">1 1 -1 1 -1 -1 -1 -0.9999998 -1 -0.9999997 1 -1 1 0.9999995 1 0.9999994 -1.000001 1 -1 -0.9999997 1 -1 1 1</float_array>
我所試圖實現讀取在count="24">
之後寫入的數字數組並將其傳遞給另一個函數,但numString
在通過等式後仍保留值""
,從而導致後續函數失敗。如果任何人能夠提供我洞察爲什麼發生這種情況,我會非常感激。
我測試過的一個簡短的SSCCE已經揭示出問題在於其他地方,我將不得不進一步調查這一點 - 抱歉浪費你的時間,並感謝你花時間嘗試和幫助我。
是什麼類型'numString'?你能給[sscce](http://www.sscce.org/)嗎?注意sscanf_s是C,因此你的問題可能會被更好地重新定義爲一個C問題,除非一些C++特定的東西是問題的一部分。 – PlasmaHH
numString只是一個字符串變量(使用std :: string),並且我對C++問題的錯誤表示歉意,我使用C++並且沒有C語言經驗,因此不知道這是C函數 – ddewerg
請注意,格式字符串末尾的's'是一個文字's',而不是掃描集記號的一部分。對你來說幸運的是,沒有辦法知道它在輸入字符串中無法匹配。 –