0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 22
1

Работа с командной строкой

18.03.2011, 14:35. Показов 2086. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ситуация: у меня есть программа-интерпретатор другого языка. Работает через командную строку. Преподаватель попросил следующее: реализовать простейшие арифметические операции, которые при этом выполнялись через другой язык. То есть: есть командная строка. Есть свои команды в духе compile, exit и т.п. Они определенны и все работает замечательно. Теперь, если я ввожу два числа, например 2+3, то программа должна перевести это выражение на другой язык, который моя программа интерпретирует и выдать результат. Проблема в следующем: как грамотно считать вводимые числа, арифметические операции и как вообще определить, что вводятся именно цифры?
Надеюсь понятно объяснил
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2011, 14:35
Ответы с готовыми решениями:

Работа с командной строкой
Здравствуйте, есть VCL Form приложение, в нём нужно выполнить в cmd команду и получить ответ - как...

Работа с командной строкой Win+R
Как можно реализовать работу с командной строкой?... Допустим... Нажимает на кнопку открывается...

Работа с файлами, чтение/работа со строкой
Доброго времени суток. Начал работать с C++ Builder 6. Есть текстовый файл .txt с различными...

Работа с командной строкой
Здравствуйте. Хочу проверить изменялось ли имя exeшного файла .запускаю из командной строки и...

5
Day
1178 / 988 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
18.03.2011, 16:53 2
C
1
2
3
4
5
6
7
8
9
10
11
char c; int x;
x = 0;
while(1) {
 cin >> c;
 if ('0'<=c && c>='9') {
   x = 10*x +c;
   continue;
 } 
 // c - не цифра. Анализируешь ее на +, - ..., запоминаешь, выполняешь действие и т.п.
 break;
}
если я правильно понял вопрос
1
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 22
18.03.2011, 17:25  [ТС] 3
Может и правильно, только я не совсем понял, что вы сделали. Зачем цикл, зачем умножение ... Можно поподробнее пожалуйста.
0
Day
1178 / 988 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
18.03.2011, 19:28 4
Цитата Сообщение от Voltrex Посмотреть сообщение
Может и правильно, только я не совсем понял, что вы сделали. Зачем цикл, зачем умножение ... Можно поподробнее пожалуйста.
Этот цикл преобразует последовательность десятичных цифр в число. попробуй написать число и применить к нему этот цикл вручную.
Извиняюсь, ошибочка. Строка 7 должна выглядеть так:
C
1
x = 10*x + c - '0';
1
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 22
18.03.2011, 19:31  [ТС] 5
А что значит 1 в скобочках цикла while?
И да, спасибо за решение, теперь все понятно.
0
Day
1178 / 988 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
18.03.2011, 20:52 6
Цитата Сообщение от Voltrex Посмотреть сообщение
А что значит 1 в скобочках цикла while?
1 - это всегда true. Т.е. цикл бесконечный. Вернее, в заголовке цикла проверка на его окончание не производится, а производится где-то в другом месте, скажем, когда очередной символ - не цифра. Тогда делаются необходимые действия и происходит выход из цикла оператором break
0
18.03.2011, 20:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2011, 20:52
Помогаю со студенческими работами здесь

Работа с командной строкой
Нужно встроить в программу код для перекодировки звукового файла из wav во flac. Для этого взял...

Работа с командной строкой
Как записать файл в командную срока и оттуда считывать этот файл?

Работа с командной строкой
Здравствуйте! Не подскажите как можно работать с командной строкой в си++? Я имею ввиду через...

Работа с командной строкой
Я написал код, который ставит определённую программу на автозапуск. Есть определённая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru