Привет всем! Получаю от контроллера через com-порт код карты в шестнадцатеричном виде побайтно:59,72,3Е,2,1 Подскажите как его предбразовать в строку вида "59723Е0201", так он сохранен в mySQL базе.
>Привет всем! Получаю от контроллера через com-порт код карты в шестнадцатеричном виде
>побайтно:59,72,3Е,2,1 Подскажите как его предбразовать в строку вида "59723Е0201", так он
>сохранен в mySQL базе.можно так:
sscanf(str,"%2x%2x%2x%2x%2x",
&bin[0], &bin[1], &bin[2], &bin[3], &bin[4], &bin[5])
Спасибо, попробовала, только потом функция printf("%s\n",str) выводит эту строку в виде каких-то квадратиков и т.п. Может я что не так делаю?
> Может я что не так делаю?кусок кода
>>Привет всем! Получаю от контроллера через com-порт код карты в шестнадцатеричном виде
>>побайтно:59,72,3Е,2,1 Подскажите как его предбразовать в строку вида "59723Е0201", так он
>>сохранен в mySQL базе.
>
>можно так:
>
>sscanf(str,"%2x%2x%2x%2x%2x",
>
>&bin[0], &bin[1], &bin[2], &bin[3], &bin[4], &bin[5])не понимаю за чем здесь это? он же байты получает в bin, а в str нужно вывести 0x59,0x72 и тд.
так надо не скан принт!
sprintf(str,"%02x%02x%02x%02x", bin[0], bin[1], bin[2], bin[3]).
> не понимаю за чем здесь это? он же байты получает в bin, а в str нужно вывести 0x59,0x72 и > тд. так надо не скан принт!точно, сорри, зашился - привёл примет для "обратной ситуации"
Спасибо! С sprintf все работает как надо!