Командная строка не передает символ "^" ?[Решено]
Модератор: Модераторы
Командная строка не передает символ "^" ?[Решено]
Пишу кальлулятор командной строки. Столкнулся со следующей проблемой: командная строка вместо символа возведения в степень "^" возвращает программе символ с кодом 0. Если задавать строку в программе присваиванием все нормально работает. Параметр передается прогрграмме с помощью ParamStr.
Подскажите, пожалуйста, с чем это может быть связанно, и как с этим бороться. Google не помог.
Подскажите, пожалуйста, с чем это может быть связанно, и как с этим бороться. Google не помог.
Последний раз редактировалось Topotun 10.04.2011 16:17:31, всего редактировалось 1 раз.
В принципе понятно отчего такая петрушка. Так "\^" не работает, а вот так "^^" все нормально. Остается вопрос как сделать чтоб можно было задавать строку в нормальном виде? Использовать другие символы не хочу, "^" традиционно используется как оператор возведения в степень. Хотелось бы чтоб пользователь мог вводить строку в привычном виде.
Есть ли такая возможность?
Есть ли такая возможность?
Может быть, стоит попробовать вводить всё выражение в кавычках. Как один параметр, типа "4^2 + 2^5", а уже в программе разбирать этот параметр на составные части.
Да, при вводе выражения в кавычках прога работает как надо. Спасибо. Но все же хотелось чтоб можно было вводить без кавычек. Например:
Calc 3^2*5
В таком случае программа получает 32*5, символ "^" просто выкидывется из строки. Что с этим делать ума не приложу.
Calc 3^2*5
В таком случае программа получает 32*5, символ "^" просто выкидывется из строки. Что с этим делать ума не приложу.
- Доктор, когда я делаю вот так... Ой! Да, то мне больно. Что делать?
- Не делайте больше так никогда, и все пройдет.
- Не делайте больше так никогда, и все пройдет.
ОС --- Windows? или *nix?
Если *nix, то КС должна передавать символ "^" (см. калькуляторы apcalc и wcalc). Если MSW, то ХЗ.
Если *nix, то КС должна передавать символ "^" (см. калькуляторы apcalc и wcalc). Если MSW, то ХЗ.
Windows. Видимо придется либо вводить другой символ для возведения в степень, либо пользоваться кавычками. 
Ещё, как вариант, можно сделать интерактивный режим калькулятора, по аналогии с интерактивной консолью Python/Ruby. Тогда программа будет запускаться без параметров, а выражение будет вводится уже после запуска, в консоль (т.е. в stdin) и читаться с помощью ReadLn. С stdin не должно быть таких ограничений на спецсимволы, как с параметрами командной строки.
Вообщем решил построить для программы интерфейс. Это будет хорошей практикой. Спасибо всем отписавшимся за ответы.
