我正在编写一个非常简单的shell的历史记录,该shell使用getline和cin来获取命令。对于历史记录,我尝试为getline提供类似可编辑的默认选项的内容。类似于bash中“读”的-i标志。
通过在getline之前将默认选项打印到shell中,然后合并该选项以及如下的输入和处理过程,我就能拥有一个可附加选项:
cout << "> " << lastCommand;
getline(cin, command);
command = lastCommand + command;
但是由于历史记录的目的也是纠正拼写错误的命令,因此该选项也需要可编辑。
我还发现,我可以使用“ rdbuf”将选项注入cin,但是getline只会返回该选项而无需进一步输入。 (Injecting string to 'cin')
通过什么我可以实现类似的目标? 任何帮助或提示将不胜感激。