2012-04-07 22 views
2

我学习跨格式字符串低于大约sscanf来到:*中的sscanf,*里面[]

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

我理解部分%[^:]方式扫描,直到遇到一个':'并将其分配给a:格式字符串表示匹配':'

  1. 我了解,%*d意味着抑制分配,直到遇到一个数字。但是%[^*=][]里面的*是什么意思?

  2. %*[*=],这是否像抑制扫描,直到它遇到一个=。如果是这样,是否相当于%[^=]

回答

1

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

sscanf的这个调用将匹配第二个指令中的一个*或=,并将结果赋给b。然后第三条指令将抓取所有*或=字符,并丢弃结果。

+0

非常感谢你:)。很抱歉地问,%n与%d是一样的,还是它有任何特定的含义。 – 2012-04-07 10:51:07

+0

得到了答案。它返回找到的元素的数量。谢谢 :) – 2012-04-07 11:36:30