Как написать аналог командной строки на c++?
Мне задали написать самый простой аналог командной строки c++. Если честно, я в душе не е..знаю как ее делать) Может есть хоть какие-нибудь статьи или гайды? Потому что я вообще ничего не нашел.
Ответы (2 шт):
Командная строка в грубом рассмотрении представляет из себя достаточно простую функциональность. Она считывает команду, выполняет действия и показывает при необходимости вывод.
Поэтому самый простой аналог наверное будет такой:
#include <iostream>
#include <string>
int main()
{
while(true)
{
std::string command;
std::cout << "$>";
std::cin >> command;
if(command == "hi")
std::cout << "Oh, hi!" << std::endl;
if(command == "exit")
break;
}
return 0;
}
А дальше только стоит наращивать фукнциональность в зависимости от введенных команд и требований: установить текущую папку перед работой, переход по директориям, вывод файлов в директории и работа с ними, запуск других *.exe т.д. Все остальное зависит только от того, насколько сложной должна быть ваша собственная командная строка и какие возможности поддерживать.
Не думаю, что это еще актуально, но добавлю пояснение к ответу выше.
Если вы рассмотрите стандартную командную строку, первое что должно быть это ключевое слово по типу :
- cd (смены директории)
- ls (вывод списка текущей директории)
- git (для системы контроля версий)
- и т.д.
При написании своей cmd, определите заранее этот список(или даже добавьте спец функцию для подключения того же git, по типу переменные среды как windows), а далее, если нужно посложнее сделайте небольшой парсер для входа флагов и аргументов. Например на основе очереди, а зачем через ветвления или switch уже реализуете их логику.