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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
#1

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

03.09.2012, 22:52. Просмотров 799. Ответов 5
Метки нет (Все метки)

Всем приветики-чмок. Есть пара вопросов:

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++
Всем привет. Собственно в чем вопрос. Пишу простенькую базу данных студентов и хочу реализовать выбор в меню как в биосе. Тобишь, у...

Слияних 2 файлов в третий + строки + использование командной строки - C++
Помогите с заданием пожалуйста. Задано 2 файла, строки в которых упорядочены по алфавиту. Написать программу, осуществляющую слияние этих...

Аргументы командной строки - C++
#include <iostream> #include <stdio.h> #include <fstream> #include <string.h> #include <Windows.h> #include <string> using...

Аргументы командной строки - C++
int main(int argc,int **argv) Понял только,что argc отвечает за количество аргументов,а argv-массив указателей на строки символов.Но...

Формат командной строки - C++
Нужно выполнить задание. Есть X потоков в которых лежит по объекту, эти объекты я в случайном порядке сую в контейнер размером Y. При...

Вывод командной строки - C++
Как вывести на экран копию командной строки! Надо это как-то сделпть с аргументами функции main

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
03.09.2012, 22:54 #2
C++
1
int main(int n, char **args)
n - количество параметров
args - массив строк параметров
Разве не подходит?
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
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
03.09.2012, 23:36 #4
Нормальными терминами это называется синтаксический анализ.

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

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

Параметр командной строки - C++
Уважаемые форумчани, прошу подсказать, как будет выглядеть следующее в коде: Программа должна принимать один параметр командной строки...

Аргументы командной строки - C++
Пытаюсь разобраться с этой штукой. У Дейтела это собственно только дополнение, а не отдельный пункт раздела так что всё написано сжато и с...

Аргументы командной строки - C++
Уважаемые форумчане, растолкуйте, пожалуйста, назначение третьего аргумента "char *const options" в функции GetOptList . Для чего он данном...

Студия с командной строки - C++
Меня окончательно задолбали IDE, и я хочу юзить с командной строки c++ компиляторы студии: 1. Microsoft Developmet Studio 4.0, 2....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.09.2012, 15:19
Ответ Создать тему
Опции темы

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