La libreria GNU readline è ottima se desideri funzionalità complete di modifica della riga e cronologia, ma se è sufficiente un semplice prompt (o se non desideri la licenza GNU), puoi farlo solo con la libreria standard:
#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";
}
Raccomando la libreria GNU readline per questo. Si occupa del noioso lavoro di ottenere righe di input e consente all'utente di modificare la propria riga con backspace, frecce sinistra e destra, ecc. ecc. Readline viene installato con le tipiche distribuzioni unix-like come linux, ma se non ce l'hai, puoi trovarlo qui.
Modifica:ecco un esempio minimo di readline:
#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);
}
}