我正在解析一个字符串(一个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中生成正确的输出.
有没有人遇到类似的问题?
最佳答案 摆脱%n之前和之后的空格.