我正在解析一个字符串(一个char *),我正在使用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中生成正确的输出。
有没有人遇到类似的问题?
答案 0 :(得分:2)
摆脱%n
之前和之后的空格。