Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

sscanf заклинание ?
http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=14368
Страница 1 от 1

Автор:  vesko_hard [ Вто Фев 16, 2016 1:24 pm ]
Заглавие:  sscanf заклинание ?

Ако някой каже как да го разтълкувам това заклинание че зациклих:

Код:
unsigned int data;
sscanf("CODE1=31506006536", "%*[^=]=%lo", &data);


в data се получава: 0xCD180D5E

Автор:  palavrov [ Вто Фев 16, 2016 1:30 pm ]
Заглавие:  Re: sscanf заклинание ?

% - това няма нужда от обяснение
* - това поле да се пропусне
[^=] - примитивен regular expression т.е. в комбинация с * смисъла е да се пропуснат всички символи до =
= - пропусни =, пак в комбинация с горното прескача целия израз "CODE1="
%lo - първия реален аргумент (да не те излъжа но май е octal а не decimal) който се записва в &data

Автор:  vesko_hard [ Вто Фев 16, 2016 1:40 pm ]
Заглавие:  Re: sscanf заклинание ?

oct(31506006536)= hex(CD180D5E)


Много благодаря.
Не бях попадал на такова чудо....

Автор:  palavrov [ Вто Фев 16, 2016 2:32 pm ]
Заглавие:  Re: sscanf заклинание ?

Хич не го обичам scanf ама върши работа - NMEA и АТ команди се парсват идеално. Regular expressions са му доста примитивни де, което е спирачка за по сложни граматики.

Страница 1 от 1 Часовете са според зоната UTC + 1 час [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/