|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.11.2009, 23:02 | #1 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
преобразование в цифры
Здравствуйте. Интересует такой вопрос:
По-символьно считываю данные из файла... идут цифры по порядку, 123... если добавлять просто num+=data[x]; получится 1+2+3 ... в результате 6, но не целое число 123... конечно есть идея мудрить с условиями и умножать на 10 или 100, но можно обойтись простой функцией? |
21.11.2009, 23:20 | #2 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
Код:
|
22.11.2009, 01:47 | #3 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
спасибо )
У меня проблема... char a[100]; в этом массиве есть так же цифры... например если записать в файл char[1]; будет та цифра, какая там и есть, а если я запишу в переменную int num=char[1]; то уже совершенно другая цифра... пробовал через atoi, ошибку выдает... Последний раз редактировалось Stilet; 23.11.2009 в 08:26. |
23.11.2009, 00:33 | #4 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
atoi в качестве параметра принимает не char, а указатель на строку, терминированную нулём(C-строка)
int num = char[1]; запишет в num аски-код символа, что в char[1]. ... Если Вы уверены, что в char[1] находится цифра и именно она Вам и нужна, то можно её получить в int так: Код:
Последний раз редактировалось netrino; 23.11.2009 в 00:35. |
23.11.2009, 01:02 | #5 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Спасибо! Получилось! А такой вопрос на засыпку, есть число в шестнадцатеричном виде. Например: А1
Хочу его перевести в десятичное... как сделать примерно, у меня есть идея, но прежде чем мудрить с проверками и т.п, мне интересно, существует ли уже какая-либо готовая функция? Данное число состоит из двух символов... в массиве char[1]; т.е char[0] это А, char[1] это 1... можно это в строку записать, получится А1, а уже из строки переводить в переменную в десятичном виде... или напрямую из массива, или еще какие варианты есть? очень буду рад, если подскажите, и покажите на примере Последний раз редактировалось Артэс; 23.11.2009 в 01:05. |
23.11.2009, 01:56 | #6 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
Код:
как мне сказал препод (кажись так), компьютер не понимает шестнадцатеричные циферки и их пришлось хранить в массиве мне (я делал компилятор для ассма) |
23.11.2009, 02:08 | #7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Не припомню, чтобы такая ф-ция была в стандартной библиотеке, тем не менее не сложно написать свою:
Код:
... опоздал ) |
23.11.2009, 02:16 | #8 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Ну в принципе как я и думал, сравнение и умножение на 16 и т.п... но спасибо все равно!
|
23.11.2009, 02:30 | #9 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
Я бы тоже использовал свою ф-цию, но вообще есть strtol.
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цифры числа... | Mr.Qwerty | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 08.09.2009 18:44 |
Шестнадцатеричные цифры | Olejik | Общие вопросы C/C++ | 4 | 04.06.2009 22:27 |
Сортирует цифры по строкам, а надо чтобы сортировала цифры , записанные через пробелы | Алексей_xXx | Помощь студентам | 14 | 06.05.2009 17:42 |
Римские цифры | Sergeevich | Помощь студентам | 2 | 26.05.2008 18:21 |
Перевёрнутые цифры | BETONOMESHALKA | Общие вопросы Delphi | 2 | 04.11.2007 15:22 |