Como fazer o histórico de comandos no aplicativo de console?

Eu quero fazer aplicação de console interativo, que permite inserir o comando em loop. Por exemplo, o usuário digita "pesquisa" e programa encontra alguns dados e os imprime na tela. Em seguida, o programa aguarda o próximo comando (que pode ser pesquisa, sair ou outro). Para a conveniência do usuário, quero que meu programa suporte o histórico de comandos (como no terminal, ao pressionar as setas para cima e para baixo no teclado). Mas não consigo perceber como fazer isso porque não sei como imprimir texto que pode ser lido por scanf, std :: getline, std :: cin e assim por diante. Então codifiquestd::cin << "hello"; não é compilado (nenhuma correspondência para "operador <<" em "std :: cin" "hello" ’). Funçãofprintf(stdin, "hello"); não imprime nada e o scanf não consegue ler esta mensagem impressa. É evidente questd::getline(std::cin, str); escanf("%s", s); egets(s) e assim por diante não pode ler o texto que foi produzido porprintf oustd::out. Então a questão é: como eu posso imprimir texto no console que também estará emstdin (std::cin) Ou talvez haja uma maneira mais elegante de organizar o histórico de comandos?

P.S. Eu também pensei em simular o botão pressionando para imprimir o texto que eu preciso, mas espero que haja uma maneira melhor de fazer o histórico de comandos

P.P.S. Eu uso Linux e C ++

questionAnswers(2)

yourAnswerToTheQuestion