Задать вопрос
@JSent

Консольный калькулятор на C++. Как лучше сделать?

В языке Си есть две записи:
1) int x = 2+3*4;
2) char str[] = "2+3*4";

В первом случае мы получим значение выражения 2+3*4, а во втором его строковую запись.
Собственно вопрос: а можно ли стандартными способами языка преобразовать строку, считанную с консоли, в арифметическое выражение?
Я понимаю, что можно самому написать программу для этого, но это долго и велосипед.
  • Вопрос задан
  • 2638 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
ThePyzhov
@ThePyzhov
iOS Ninja
Страуструп - Принципы и практика программирования, если не ошибаюсь, то в 6 главе вроде про это рассказывается. Там описывается полный процесс создания данного калькулятора, с определением приоритетов действий, при записи выражения в строку.
Ответ написан
@Tuvan
Комментировать
@dmitryKovalskiy
программист средней руки
Совсем стандартными - нет. Какими либо математическими библиотеками - возможно. А на деле - это неплохая задачка для студента, изучающего программирование.
Ответ написан
Комментировать
@mamkaololosha
но это долго и велосипед

Вы ошиблись профессией. В программировании уживаются те, кто могут написать велосипед и быстро. 99% программ - велосипед. Фактически вашу задачу можно привести к "Быстро написать парсер ответа с сервера. Формат вы видите впервые. Готовых средств нету. Переписывать либу в 10к строк некогда." Просто вы видимо не работали никогда и считаете, что всё делается кнопкой "сделать заебись".
Ответ написан
@asd111
Берите любой парсер, например bison. Обычно в доках есть пример калькулятора.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы