LINUX.ORG.RU

Помогите со sscanf()


0

0

есть строка

char str[2]="3F";

и переменная 

char var;

как правильно сформировать шаблон преобразования str into var чтобы небыло переполнения буфера???

Тоесть насколько я понимаю в следующем преобразовании возможно переполнение буфера:

sscanf(str,"%X",&var);
★★★★★
Ответ на: комментарий от anonymous

>в общем, man 3 sscanf

ет я прочитал

>char var; >unsigned int x; >sscanf(str,"%X",&x); >var=x;

А ещё мне удалось найти

char var; sscanf(str,"%hhX",&var);

только почему етого нет в манах???

cvv ★★★★★
() автор топика

Более подробно чем в man расписано в info libc.

anonymous
()
Ответ на: комментарий от jek_

>> char str[2]="3F";

>btw this is very, very bad

>надо

>char str[3]="3F";

>или, лучше,

>char str[]="3F";

Благодарю но ето было типа опечатки.

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

sscanf(str,"%hhX",&var);
ХЗ
у меня на сусе в манах эти модификаторы описаны
h Indicates that the conversion will be one of dioux or n and the next pointer is a pointer to a short int (rather than int).

и собственно по теме так действительно нужно делать
т.к. в твоем случает переполнение будет по любому.....

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