2

我正在学习sscanf并遇到如下格式字符串:

sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c);

我理解这部分%[^:]意味着扫描直到':'遇到 a 并将其分配给a. :在格式字符串中表示匹配 a ':'

  1. 我理解这%*d意味着在遇到数字之前抑制分配。但是%[^*=]*里面[]是什么意思呢?

  2. %*[*=], 是否像抑制扫描直到遇到=. 如果是这样,它是否等同于%[^=]

4

1 回答 1

1

里面的*方括号只是一个文字 *。

此调用sscanf将匹配第二个指令中的所有内容,直到 * 或 =,并将结果分配给b. 然后第三个指令将获取所有 * 或 = 字符,并丢弃结果。

于 2012-04-07T10:45:43.690 回答