gpt4 book ai didi

c - 与 sscanf 一起使用的格式说明符 %n 不返回字符数

转载 作者:可可西里 更新时间:2023-11-01 14:18:36 25 4
gpt4 key购买 nike

我正在解析一个字符串 (a char *) 并且我正在使用 sscanf 将字符串中的数字解析为 double 变量,像这样:

while (*s) {
if (sscanf(s, " %1[MmLl] %f %f %n ", command, &x, &y, &n) == 3) {
//Do some processing
s += n;
}
}

除少数情况外,这适用于大多数输入。问题出在计数变量 n 上。对于某些输入,变量 n 永远不会更新,它会继续保存上一次迭代的计数。这会导致错误的偏移量并扰乱解析。我没有看到失败的输入有什么奇怪的地方。

注意:此问题仅在 Windows 中发生,因为相同的代码在 Linux 中会产生正确的输出。

有没有人遇到过类似的问题?

最佳答案

去除%n前后的空格。

关于c - 与 sscanf 一起使用的格式说明符 %n 不返回字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21619329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com