GNU/Linux >> LINUX-Kenntnisse >  >> Linux

C++-Befehlszeilenschnittstelle

Die GNU-Readline-Bibliothek ist großartig, wenn Sie vollständige Zeilenbearbeitungs- und Verlaufsfunktionen wünschen, aber wenn eine einfache Eingabeaufforderung ausreicht (oder wenn Sie die GNU-Lizenz nicht möchten), können Sie dies einfach mit der Standardbibliothek tun:

#include <iostream>
#include <string>

void process(std::string const & line);

int main()
{
    for (std::string line; std::cout << "APP > " && std::getline(std::cin, line); )
    {
        if (!line.empty()) { process(line); }
    }

    std::cout << "Goodbye.\n";
}

Ich empfehle dafür die GNU-Readline-Bibliothek. Es kümmert sich um die mühsame Arbeit, Eingabezeilen zu erhalten, und ermöglicht es dem Benutzer, seine Zeile mit der Rücktaste, den Links- und Rechtspfeilen usw. zu bearbeiten und ältere Befehle mit dem Aufwärtspfeil abzurufen und sogar nach älteren Befehlen mit ^R zu suchen. usw. Readline wird mit typischen Unix-ähnlichen Distributionen wie Linux installiert, aber wenn Sie es nicht haben, können Sie es hier finden.

Bearbeiten:Hier ist ein minimales Readline-Beispiel:

#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>

int main(int argc, char ** argv)
{
    while(1)
    {
        char * line = readline("> ");
        if(!line) break;
        if(*line) add_history(line);
        /* Do something with the line here */
        free(line);
    }
}

Linux
  1. Zeitzonenkonvertierung per Befehlszeile

  2. Bash wenn auf einer einzigen Zeile

  3. Probleme mit der Netcat-Befehlszeile

  4. Wie rufe ich eine Wi-Fi-Schnittstelle von einer Befehlszeile aus auf?

  5. Kommandozeilen-Ausdruckslöser?

Diff-Befehl unter Linux

Einführung in die Wireshark-Befehlszeilenschnittstelle:Der TShark

Meistern Sie die Linux-Befehlszeile

Grundlagen der Linux-Befehlszeile:sudo

ip-Befehl unter Linux mit Beispielen

Befehlszeilen-Audioplayer?