реклама на сайте
подробности

 
 
> sscanf портит строчку?
Laptop
сообщение Oct 5 2009, 14:16
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103



Компилирую под IAR AVR 5.30 без дополнительных патчей.
Вроде все просто и должно работать....

strncpy(temps,"89",2);
temps[2] = '\0';
printf(" %02X%02X + ",temps[0],temps[1]);
sscanf(temps,"%X",&xxx);
printf(" %02X%02X - ",temps[0],temps[1]);

А в результате... " 3839 + 0039 -"
Т.е. до использования sscanf все нормально, а после использования первый символ в 0.
Что я упустил?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Oct 5 2009, 15:31
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Размеры стека. Размеры стека и еще раз размеры стека.
P.S.
Это лишнее:
Код
temps[2] = '\0';

как и strncpy()


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Laptop
сообщение Oct 5 2009, 16:55
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103



Цитата(zltigo @ Oct 5 2009, 19:31) *
Размеры стека. Размеры стека и еще раз размеры стека.
P.S.
Это лишнее:
Код
temps[2] = '\0';

как и strncpy()

Стек 2 КБ. Библиотеки medium.
Так что уж и не знаю на что думать....

smile.gif Исходник был несколько больше, для проверки упростил оставив часть кода.

Цитата(rezident @ Oct 5 2009, 19:22) *
А с типизацией и приведением типов у вас все в порядке?

Да вроде нормально. В настройках компилятора стоит plain char unsigned если это важно.
sscanf то сам нормально все получает, а вот строчка получает 0 по первому адресу, будто он ее обнуляет.

Объявления переменных в теле функции.

char temps[11];
unsigned char temp, xxx;

То ли лыжи, то ли... smile.gif

Изменение на unsigned int xxx;
и все стало как и должно было быть smile.gif

Видать все же типы и еще раз типы... Не думал что на такой фигне попадусь smile.gif

Всем большое спасибо smile.gif А мне спать больше надо smile.gif))
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 05:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016