FSF.sscanf

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

FSF.sscanf

Post by Tim Sobolev »

В Энциклопедии сказано:
Возвращаемое значение
В случае успеха функция возвращает количество записанных полей. (символ конца строки в это количество не входит).
В случае ошибки возвращается 0 - ни одного поля не считано.
Путем экспериментов с ней и стандартной sscanf (stdio.h) выяснилось, что при отсутсвии считанных полей возвращается 0, иначе 1.

Надо бы поправить документацию, или я ошибаюсь?
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Post by 4ekucT »

Вот что говорит стандарт
Return Value
Each of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. A return value of 0 indicates that no fields were assigned. The return value is EOF for an error or if the end of the string is reached before the first conversion.
В документации по API должно быть тоже самое (если конечно там она работает как стандартная Си функкция - поидее именно так).
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Post by Tim Sobolev »

Да читал я MSDN (у мя октябрь 2004)... Я просто говорю о том, что есть на практике: что "111111", что "1z" возвращают результатом функции 1.
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Post by Centaur »

Так а форматная строка у тебя какая? Поди одно поле %d? Про символы ничего не говорилось.
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Post by Tim Sobolev »

Все, понял, там походу имелось в виду к-во разобранных параметров... Сорри за загон...

Теперь вопрос #2: как узнать сколько символов строки было преобразовано в число с начала некоторой строки ? Мне допустим надо преобразовать строки "10r" или "0x123sw" и получить в какую-то переменную значения 2 и 5 соответственно...

Или только ручной парсинг?
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Post by 4ekucT »

=Tim Sobolev= wrote:Да читал я MSDN (у мя октябрь 2004)... Я просто говорю о том, что есть на практике: что "111111", что "1z" возвращают результатом функции 1.
Свежесть мсдн тут не причем. Это было стандартизировано еще в 1986 году :!: если мне не изменяет память... Но это так к слову :lol:
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Post by Tim Sobolev »

Все оказалось элементарно....

Code: Select all

 FSF.sscanf(s1,"%i%s",&v,s);...
Post Reply

Return to “Разработка плагинов”