Название: Консольный калькулятор Отправлено: Vyshkant от Ноябрь 17, 2011, 13:46 Здравствуйте! Задался целью (при выполнении одной из лаб) написать консольный калькулятор на С++, который бы считал подряд, т.е. не учитывая приоритетов знаков умножения и деления, беря данные для подсчёта из аргументов. Собственно говоря, с горем пополам, написал. Изначально писал под Microsoft Visual Studio, но затем снёс венду и поставил Ubuntu 10.04 LTS, на коей установил qt-sdk.
Естественно, заголовки сменил на qt-шные. И всё, собственно говоря, работало, как и на венде. Но, всё да не всё :) А именно: знак умножения (" * ") не распознаётся как таковой: все операции кроме умножения идут нормально, на умножении выдаёт ошибку, типа "не предусмотренный символ". Вот код: Код: #include <QtCore> Вот как реагирует на аргументы: Код: anton@laptop:~$ '/home/anton/prog/cpp/laba1-2/laba1-2' 2 + 2 Подскажите пожалуйста, что не так. З.Ы. Нуб :) З.З.Ы. Прога чисто учебная, так что на сложность решений "через зад" внимания прошу не обращать :) Название: Re: Консольный калькулятор Отправлено: Anchorite от Ноябрь 18, 2011, 09:14 По-моему '*' разворачивается в список имен файлов в текущей папке. Поэтому ты и получаешь эту ошибку. Проверь, что реально приходит в argv у main.
Название: Re: Консольный калькулятор Отправлено: iroln от Ноябрь 18, 2011, 10:15 У Страуструпа в книжке разбирается консольный калькулятор. Не смотрели чисто ради интереса?
Название: Re: Консольный калькулятор Отправлено: andrew.k от Ноябрь 18, 2011, 12:26 По-моему '*' разворачивается в список имен файлов в текущей папке. Поэтому ты и получаешь эту ошибку. Проверь, что реально приходит в argv у main. Конечно, интерпретатор символ * заменяет на список файлов из текущей директории.Передавай свою строчку для рассчета в двойных кавычках. ./calc "2*5+4" Название: Re: Консольный калькулятор Отправлено: Vyshkant от Ноябрь 18, 2011, 20:20 Реально ли сделать, чтобы * понималась именно как *, а не как список файлов из текущей директории, не используя кавычки?
Название: Re: Консольный калькулятор Отправлено: Пантер от Ноябрь 18, 2011, 20:20 \*
Название: Re: Консольный калькулятор Отправлено: Vyshkant от Ноябрь 18, 2011, 20:39 Можно ли это обусловить в коде? Т.е. чтобы не требовалось вводить \* в консоли ?
Название: Re: Консольный калькулятор Отправлено: Пантер от Ноябрь 18, 2011, 20:40 Нет.
Название: Re: Консольный калькулятор Отправлено: Igors от Ноябрь 18, 2011, 21:22 Упражнение прекрасное, ну реализация пока не очень :) Сделайте с учетом кавычек, приоритета операций, скобок, добавьте парочку ф-ций (напр sin и cos), отловите деление на ноль. Так Вы научитесь гораздо большему чем ставя убунту, "собирая" и тупенько заучивая классы.
|