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

Реализация управления из командной строки - C++

Восстановить пароль Регистрация
 
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
03.09.2012, 22:52     Реализация управления из командной строки #1
Всем приветики-чмок. Есть пара вопросов:

1. Как правильно реализовать управление типа "gccp file show f.cpp" (название_программы команда подкоманда1 адрес_объекта)? Может, как массив указателей на функции? Или деревья какие-нибудь? То есть, не _лишь_бы_работало_,а как лучше сделать по уму.

2. Допустим, я делаю в терминале: cd C:\pr\cpp. Как Windows (да или где угодно, если есть универсальный способ) получить вот этот вот самый адрес (C:\pr\cpp) в виде строки или чего-нибудь еще?

Заранее спасибо, с меня плюсики.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2012, 22:52     Реализация управления из командной строки
Посмотрите здесь:

C++ Аргументы командной строки
C++ использование командной строки
аргементы командной строки C++
C++ Формат командной строки
C++ Слияних 2 файлов в третий + строки + использование командной строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andsteadur
152 / 136 / 3
Регистрация: 23.05.2009
Сообщений: 275
03.09.2012, 22:54     Реализация управления из командной строки #2
C++
1
int main(int n, char **args)
n - количество параметров
args - массив строк параметров
Разве не подходит?
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
03.09.2012, 23:19  [ТС]     Реализация управления из командной строки #3
Andsteadur, не-не-не! Как принять параметры из командной строки я знаю, меня интересует представление всех допустимых аргументов. Допустим: gccp file show f.cpp.
file - указание на... эээ... семейство команд, ведь сам по себе gccp file смысла не имеет. show, например, можно указать только после gccp file, но никак нельзя написать, например gccp directory show (у directory свой набор команд, в который show ну никак не входит).

Не по теме:

Прошу прощения за поток сознания, не знаю как такое нормальными терминами объясняется.

OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
03.09.2012, 23:36     Реализация управления из командной строки #4
Нормальными терминами это называется синтаксический анализ.

К сожалению, для разбора нет ничего умнее "первым может идти ключевое слово file, directory или путь к файлу", "если file, то за ним может идти show, delete, ...". Вот вам в первую очередь надо составить набор таких правил.

Если не хочется возиться с написанием своего, то есть генераторы парсеров, которые по набор правил сделают вам разбиралку строки в соответствии с правилами. Но их тоже надо учить, как и формат записи правил.
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
04.09.2012, 08:46  [ТС]     Реализация управления из командной строки #5
Так зачем парсер если все можно получить как argv[ 1 ], argv[ 2 ] … argv[ n ]?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
04.09.2012, 15:19     Реализация управления из командной строки #6
argv разобьёт строку по пробелам, а дальше? Дальше надо идентифицировать токены, чтобы знать, что такой-то argv[i] — это ключевое слово file, другой — это путь к файлу, третий — хз что и возможная ошибка. Потом этот список токенов ещё отдать синтаксическому анализатору, чтобы он разобрался, правильная ли это команда и что она вообще значит.
Yandex
Объявления
04.09.2012, 15:19     Реализация управления из командной строки
Ответ Создать тему
Опции темы

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