Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在学习sscanf并遇到如下格式字符串:
sscanf
sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c);
我理解这部分%[^:]意味着扫描直到':'遇到 a 并将其分配给a. :在格式字符串中表示匹配 a ':'。
%[^:]
':'
a
:
但
我理解这%*d意味着在遇到数字之前抑制分配。但是%[^*=],*里面[]是什么意思呢?
%*d
%[^*=]
*
[]
%*[*=], 是否像抑制扫描直到遇到=. 如果是这样,它是否等同于%[^=]?
%*[*=]
=
%[^=]
里面的*方括号只是一个文字 *。
此调用sscanf将匹配第二个指令中的所有内容,直到 * 或 =,并将结果分配给b. 然后第三个指令将获取所有 * 或 = 字符,并丢弃结果。
b