23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
||||||
1 | ||||||
Перевод из строки в число03.11.2009, 19:56. Показов 9205. Ответов 12
Метки нет (Все метки)
Снова я =) Работаю над калькулятором. С функцией ввода разобрался.
Значит есть строка ввода. рабочая. заполняет массив buf . Потом запускаеться функция scan_buf , она должна считать число ( пока делаю простой вариант, чтобы работал ^^ ) до знака действия т.е. пишешь в строке 51+9 жмякаешь ентер (в массиве buf : 51+9) запускаеться эта функция , в массив stack помещяться 51 . И теперь это 51 которое в массиве как символы нужно переделать в число i . Типа (ну напр.) double . В нете искал . Пробовал - не особо помогло :***( точней из того , что пробовал ничего не сработало. Помогите преобразовать stack в double число i . Работаю в Visual Studio 2008. *pz - указатель на знак ( мат. операцию +-\* ) описание строки ввода Строка ввода в калькуляторе (я немного усовершенствовал ).
0
|
03.11.2009, 19:56 | |
Ответы с готовыми решениями:
12
Разбиение строки на части, перевод строки в число и перевод числа Перевод строки в число Перевод из строки в число Перевод строки в число |
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
03.11.2009, 23:27 | 2 |
strtol().
Добавлено через 17 секунд Для вещественных - strtod().
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
||||||||||||||||
04.11.2009, 21:40 [ТС] | 3 | |||||||||||||||
попробовал следующее:
в 97 строчку писал:
ЗЫ проверял на выражении 51+9 . проблема остаёться. Можете пожалуйста написать в коде что в 97 строчку всунуть ... а то я пока что нуб в С++ =*(
0
|
10 / 10 / 2
Регистрация: 01.11.2009
Сообщений: 67
|
|
04.11.2009, 22:47 | 4 |
Как насчет того, чтобы использовать функцию atof?
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
||||||
04.11.2009, 23:44 [ТС] | 5 | |||||
Может где-то ошибка в других функциях?
0
|
10 / 10 / 2
Регистрация: 01.11.2009
Сообщений: 67
|
||||||
04.11.2009, 23:52 | 6 | |||||
Ваш код у меня выдает дофига ошибок (куча вольностей + не виндовский компилятор), так что проверить работу не могу. Но сами смотрите. Если у вас в stack действительно записано char-овское число вида "123.2", например, то atof() с этим должен прекрасно справляться!
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|||||||||||||||||||||
04.11.2009, 23:55 [ТС] | 7 | ||||||||||||||||||||
Уряя) нашел решение проблемы) Просто после выполнения участка кода с 93й строки по 96ю указатель на stack указывает не на начало массива а на пустой его элемент .
вопщем сунул туда
В 97ю добавил цикл)
А какая функ-я работает с любой наперёд заданной системой счисленя (у меня буковка p)? вот что получилось
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
05.11.2009, 00:00 | 8 |
strtol().
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
||||||
05.11.2009, 00:11 [ТС] | 9 | |||||
Из какой библиотеки она?
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
05.11.2009, 00:24 | 10 |
Опечатался - strtol().
1
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
||||||
05.11.2009, 00:31 [ТС] | 11 | |||||
Спс. наверное то , что нужно.
Только объясните плиз , как её использовать .
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
||||||
05.11.2009, 14:55 | 12 | |||||
Использовать как обычно:
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|||||||||||
05.11.2009, 20:47 [ТС] | 13 | ||||||||||
хм. в stack попадает 51 . 0 писало потому-что %d в принтф ему не нравиццо . Но теперь вобще хрень какая-то вместо 51 почему-то 81 . В stack 51 . проверял .
Добавлено через 3 минуты Ой...какой я бред написал !! извеняюсь ... неподумал.)))) Конечно же 51 в 16 ричной это 81 в 10тичной ))))) Просто
0
|
05.11.2009, 20:47 | |
05.11.2009, 20:47 | |
Помогаю со студенческими работами здесь
13
Перевод строки в число Перевод из строки в число Перевод из строки в число Перевод строки в число Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |