Использование sscanf для извлечения некоторых значений - PullRequest
2 голосов
/ 11 марта 2010

gcc 4.4.2

У меня есть следующий код:

char channels[] = "NumberOfChannel = [2]";

sscanf(channels, "%*[^=]= %d", &chan);

Мне интересно, что это значит. Насколько я могу сказать. Это игнорирует знак равенства.

'^ ignore the character ='

Это было бы правильно?

Большое спасибо,

1 Ответ

3 голосов
/ 11 марта 2010
%*[^=]

[^=] означает совпадение строки, которая не содержит =. Это расширение POSIX . * означает сброс соответствующего результата.

(Кстати, чтобы правильно получить chan вам нужно sscanf(channels, "%*[^=]= [%d]", &chan);.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...