LINUX.ORG.RU

не пашет псевдорегулярка scanf'a

 ,


0

1

Добрый день, уважаемые!
цель проста до жути - из строки вида «[ NAME = VAL ]» получить те самые NAME и VAL (записанное в шестнадцатеричном виде)
но ни одна фигня из

ret = sscanf(line, "[ %[0-9a-zA-Z_]s = %x ]", buff, addr); // самый очевидный вариант
ret = sscanf(line, "[ %[0-9a-zA-Z_]s = %[0-9A-Fa-f]s ]", buff, addr_str);
// эти два ловят только NAME и возвращают ret=1

уже складывается впечатление, что проще и быстрее было бы через getc сделать...
поскажите, плз, где я косячу??

★★★★★

Последнее исправление: metawishmaster (всего исправлений: 1)

поскажите, плз, где я косячу??

[pattern...] — это уже сам по себе conversion specifier, s тут не нужен. Правильный вариант форматной строки: [ %[0-9z-zA-Z_] = %x ].

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

да, так тоже работает, спасибо :)

век живи - век учись, как говорится :)

metawishmaster ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.