2012-04-07 2 views
2

の内側に、私はおよそsscanfとフォーマット文字列に出くわしを学んでいます:私は一部%[^:]手段が':'に遭遇されるまでスキャンしaに割り当てる理解*、*以下のように[]

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

':'のフォーマット文字列の平均一致で :

しかし

  1. 私は%*dが検出された数まで割り当てを抑える意味することを理解。しかし、%[^*=]*の内容は[]の意味ですか?

  2. %*[*=]は、それが=に遭遇するまでスキャンを抑制するのと同じですか?そうであれば、それは%[^=]と同等ですか?

答えて

1

角括弧の中の*は単なるリテラル*です。

この呼び出しでsscanfを呼び出すと、2番目のディレクティブですべて*または=と一致し、結果はbに割り当てられます。次に、3番目のディレクティブはすべての*または=文字を取得し、結果を破棄します。

+0

ありがとうございました。申し訳ありませんが、%nは%dと同じですか、それとも特別な意味がありますか?答えは –

+0

です。見つかった要素の数を返します。ありがとう:) –

関連する問題