_sda 0 14 декабря, 2018 Опубликовано 14 декабря, 2018 · Жалоба Форума по С здесь не нашёл, спрошу здесь. Помогите понять как работать с функцией strtoul в Эклипсе, не всегда выдаёт правильные значения. Например такой код при наличии в массиве n строки "14" записывает в temp "140202" который отображается в day как число 170, а должно быть число 14. В чём подвох? Причём в temp числа могут быть самые разные : 140202,140242 и т.д. alt_u8 n[2]; alt_u32 temp; ................ n[0] = GPSFixData.Day[0]; n[1] = GPSFixData.Day[1]; temp = strtoul(n, NULL, 10); day = (alt_u8)temp; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novikovfb 17 14 декабря, 2018 Опубликовано 14 декабря, 2018 · Жалоба строка в языке Си должна заканчиваться байтом с кодом \0. У Вас функция цепляет мусор, который лежит после массива n. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 14 декабря, 2018 Опубликовано 14 декабря, 2018 · Жалоба Это ж ЦЭ! alt_u8 n[3]; ..... n[2] = 0 temp = strtoul (n, NULL, 10); А еще можно попробовать temp = strtoul (&GPSFixData.Day[0], &GPSFixData.Day[2], 10); Но это не точно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 14 декабря, 2018 Опубликовано 14 декабря, 2018 · Жалоба Большое всем спасибо, коллеги! Действительно, как-то не додумался. Всё заработало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 21 декабря, 2018 Опубликовано 21 декабря, 2018 · Жалоба А ещё один вопросик. Какую библиотеку нужно подключить для использования функции itoa? Подключение stdlib.h не помогает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 21 декабря, 2018 Опубликовано 21 декабря, 2018 · Жалоба Это странно, вроде stdlib. Может у вас какая-то усеченная библиотека в среде разработки настроена для глубокого эмбеддинга? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 21 декабря, 2018 Опубликовано 21 декабря, 2018 · Жалоба 2 часа назад, _sda сказал: Какую библиотеку нужно подключить для использования функции itoa? Никакую. Эта функция не стандартная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 21 декабря, 2018 Опубликовано 21 декабря, 2018 · Жалоба 1 час назад, alexadmin сказал: Это странно, вроде stdlib. Может у вас какая-то усеченная библиотека в среде разработки настроена для глубокого эмбеддинга? Да вроде нет, обычная библиотека, настройки по умолчанию. В самой stdlib.h упоминания об itoa нет. 1 час назад, andrew_b сказал: Никакую. Эта функция не стандартная. А есть ли альтернатива? Или самому ручками писать нужно? Просто я не так часто на Си пишу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 21 декабря, 2018 Опубликовано 21 декабря, 2018 · Жалоба 41 минуту назад, _sda сказал: А есть ли альтернатива? sprintf() Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 21 декабря, 2018 Опубликовано 21 декабря, 2018 · Жалоба 29 минут назад, SSerge сказал: sprintf() snprintf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба Спасибо коллеги! Но эти функции неслабо кушают RAM, в мой проект не умещаются. Никаких других вариантов нет? Только самому писать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба 9 минут назад, _sda сказал: Спасибо коллеги! Но эти функции неслабо кушают RAM, в мой проект не умещаются. Никаких других вариантов нет? Написать самому. Пишется за несколько минут. Много меньше времени, которое Вы тут затратили на написание постов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба В инете полно исходников функции itoa. Вас что в поисковиках забанили ? ))) https://android.googlesource.com/kernel/lk/+/qcom-dima-8x74-fixes/lib/libc/itoa.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 23 декабря, 2018 Опубликовано 23 декабря, 2018 · Жалоба Эх, ребята, вы думаете я закинул вопрос и тупо сижу жду ответа? У меня параллельно идёт четыре проекта и у всех со сроками напряг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 23 декабря, 2018 Опубликовано 23 декабря, 2018 · Жалоба https://github.com/emb-lib/io Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться