Проблемы с преобразованием типов данных.
- Войдите на сайт для отправки комментариев
Суть поэтапно:
Необходимо считывать числа с Serial.read и передавать их в переменную. Изначально для хранения типы переменных объявлялись как int, соответственно, преобразование делалось через String.toInt()
Позже выяснилось, что значение до ~32 000 маловато, было принято решение объявить тип как unsigned int (все равно отрицательные значения не используются).
Далее, стало ясно, что и этого диапазона не хватает и необходимо хранить числа, хотя бы до 999 999, и тут, получается, спасет только long int.
Но с long как раз и возникла проблема. Честно, гуглил активно и усердно и находил массу решений по запросу "преобразование string в long", но что меня смутило и вызвало негодование, так это то, что все примеры, что я видел - это по сути не преобразование непосредственно string, а работа с массивом, обхявленным как char.
И вот, собственно вопрос:
Есть ли способ просто и без лишних хитростей преобразовать строковые данные, полученные с порта и сохранить их как long int?
А можно Ваш нынешний скетч посмотреть?
И, кстати, что Вам мешает воспользоваться программой преобразования для массивов char? String без проблем выдаёт своё содержимое в виде указателя на char. Возьмите s.c_str() и преобразовывайте его хоть в long long
Чем, по-вашему, является объект String?
Весь не приведу, там уже более 300 строк
...
Возьмите s.c_str() и преобразовывайте его хоть в long long
А можно про это поподробнее?
Чем, по-вашему, является объект String?
По-моему, объект String является строкой.
Блин, Вы издеваетесь над нами?
У Вас же уже ВСЁ написано!
Вы вообще в курсе. что делает метод toInt и какое значение он возвращает?
Вот его текст
Он УЖЕ преобразует в long. Просто опишите свой hotState как long и не пудрите всем мозги!
А можно про это поподробнее?
Нельзя! Вы боитесь как бы я не украл Ваш код
Весь не приведу
и в результате я должен на хрустальном шаре гадать как у Вас hotState описана. Ну, тогда я тоже боюсь что Вы украдёте мой :)
Спасибо за сдержаный и дружелюбный ответ.
Заходите ещё!
Нельзя! Вы боитесь как бы я не украл Ваш код
Было бы чего бояться, если в конечном итоге это все равно планируется в открытый доступ. Решил не выкладывать простыню из вежливости и экономии времени читающего, и оказался виноват...
и в результате я должен на хрустальном шаре гадать как у Вас hotState описана. Ну, тогда я тоже боюсь что Вы украдёте мой :)
[/quote]
Хоспади... Вы сегодня не стой ноги встали?
Вы чего-то не поняли в этой жизни.
Когда Вас просят показать код, значит, хотят его посмотреть, чтобы Вам помочь. Вы же своей "экономией места на сервере" создаёте дополнительные проблемы человеку, который Вам помочь хочет. Это, по-Вашему, хорошая идея? Не ведите себя так, как будто это Вас о чём-то попросили, а не Вы, и люди к Вам потянутся.
Надеюсь, Ваша "проблема" с long решена?
Всего хорошего!
Решил не выкладывать простыню из вежливости и экономии времени читающего, и оказался виноват...
почитайте, как выкладывать код "вежливо" :))))) ставить номера строк и по номерам можно все обсудить... типа пост №хх строка уу. а простыни больше 10 строк сворачивать.