4
我解析字符串(一個char *)的計數使用,我使用的sscanf從字符串的數字解析成雙打,就像這樣:格式說明%N,而與sscanf的沒有返回字符
while(*s){
if(sscanf(s, " %1[MmLl] %f %f %n ", command, &x, &y, &n) == 3){
//Do some processing
s += n;
}
}
這適用於除少數情況外的大多數輸入。問題在於count變量n。對於某些輸入,變量n從不更新,並且它繼續保持先前迭代的計數。這會導致錯誤的偏移量並導致解析錯誤。 我沒有看到任何奇怪的輸入失敗。
注意:此問題僅在Windows中發生,因爲相同的代碼會在linux中產生正確的輸出。
有沒有人遇到類似的問題?
擺脫'%n'前後的空格。 – ooga
謝謝。刪除%n前後的空格。 – Mugunth
爲什麼解決問題的解釋?這對我來說並不是顯而易見的。 –