Pustaka readline GNU sangat bagus jika Anda menginginkan pengeditan garis penuh dan fitur riwayat, tetapi jika permintaan sederhana sudah cukup (atau jika Anda tidak menginginkan lisensi GNU), maka Anda dapat melakukannya hanya dengan pustaka standar:
#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";
}
Saya merekomendasikan perpustakaan readline GNU untuk ini. Ini menangani pekerjaan yang membosankan untuk mendapatkan baris input, dan memungkinkan pengguna untuk mengedit barisnya dengan backspace, panah kiri dan kanan, dll, dan untuk mengingat perintah yang lebih lama menggunakan panah atas dan bahkan mencari perintah yang lebih lama menggunakan ^R, dll. Readline dilengkapi dengan distribusi khas unix seperti linux, tetapi jika Anda tidak memilikinya, Anda dapat menemukannya di sini.
Sunting:Ini adalah contoh readline minimal:
#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);
}
}