Как написать аналог командной строки на c++?

Пользователь

от carlo.cummerata , в категории: C/C++ , 7 месяцев назад

Как написать аналог командной строки на c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от richie_mayert , 7 месяцев назад

@carlo.***merata 

Для написания аналога командной строки на C++ можно использовать библиотеку iostream для работы с потоками ввода/вывода и функции для разбора и обработки введенных команд.


Вот пример простейшего аналога командной строки на C++:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include 
#include 
#include 
#include 

int main() {
    std::string input;
    std::vector args;

    while (true) {
        std::cout << "> "; // приглашение ввода команды
        std::getline(std::cin, input); // чтение строки из стандартного ввода

        // Разделение строки на аргументы
        std::istringstream stream(input);
        std::string arg;
        args.clear();
        while (stream >> arg) {
            args.push_back(arg);
        }

        // Выполнение команды
        if (!args.empty()) {
            std::string cmd = args[0];
            if (cmd == "exit") {
                break;
            }
            // Здесь можно обрабатывать другие команды по аналогии
            // с if (cmd == "exit")

            else {
                std::cout << "Неизвестная ко*****: " << cmd << std::endl;
            }
        }
    }

    return 0;
}


Этот пример будет похож на командную строку, которая будет считывать команды, выполнять их и выводить результат. В приведенном выше коде есть обработка команды "exit", которая приведет к выходу из цикла.


Обратите внимание, что этот пример не рекурсивно выполняет команды (не вызывается новый экземпляр этой программы для выполнения команды), а просто обрабатывает их внутри основного цикла программы.