Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Voltrex
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 22
#1

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

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

Ситуация: у меня есть программа-интерпретатор другого языка. Работает через командную строку. Преподаватель попросил следующее: реализовать простейшие арифметические операции, которые при этом выполнялись через другой язык. То есть: есть командная строка. Есть свои команды в духе compile, exit и т.п. Они определенны и все работает замечательно. Теперь, если я ввожу два числа, например 2+3, то программа должна перевести это выражение на другой язык, который моя программа интерпретирует и выдать результат. Проблема в следующем: как грамотно считать вводимые числа, арифметические операции и как вообще определить, что вводятся именно цифры?
Надеюсь понятно объяснил
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2011, 14:35     Работа с командной строкой
Посмотрите здесь:

Точки и работа с командной строкой windows C++
C++ Робота с командной строкой
Работа с командной строкой Win+R C++ Builder
Работа с командной строкой C++
Работа с командной строкой... C++
C++ Работа с командной строкой
Работа с командной строкой C++ Builder
C++ Работа с командной строкой. Отрытие вызываемых файлов
C++ Работа с командной строкой
C++ Работа с двоичными файлами и командной строкой
Работа с командной строкой Windows C++
C++ Работа с командной строкой

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
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;
}
если я правильно понял вопрос
Voltrex
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 22
18.03.2011, 17:25  [ТС]     Работа с командной строкой #3
Может и правильно, только я не совсем понял, что вы сделали. Зачем цикл, зачем умножение ... Можно поподробнее пожалуйста.
Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
18.03.2011, 19:28     Работа с командной строкой #4
Цитата Сообщение от Voltrex Посмотреть сообщение
Может и правильно, только я не совсем понял, что вы сделали. Зачем цикл, зачем умножение ... Можно поподробнее пожалуйста.
Этот цикл преобразует последовательность десятичных цифр в число. попробуй написать число и применить к нему этот цикл вручную.
Извиняюсь, ошибочка. Строка 7 должна выглядеть так:
C
1
x = 10*x + c - '0';
Voltrex
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 22
18.03.2011, 19:31  [ТС]     Работа с командной строкой #5
А что значит 1 в скобочках цикла while?
И да, спасибо за решение, теперь все понятно.
Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
18.03.2011, 20:52     Работа с командной строкой #6
Цитата Сообщение от Voltrex Посмотреть сообщение
А что значит 1 в скобочках цикла while?
1 - это всегда true. Т.е. цикл бесконечный. Вернее, в заголовке цикла проверка на его окончание не производится, а производится где-то в другом месте, скажем, когда очередной символ - не цифра. Тогда делаются необходимые действия и происходит выход из цикла оператором break
Yandex
Объявления
18.03.2011, 20:52     Работа с командной строкой
Ответ Создать тему
Опции темы

Текущее время: 18:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru