C++ 在c+中使用可编辑的默认值进行提示+;?

C++ 在c+中使用可编辑的默认值进行提示+;?,c++,user-interface,C++,User Interface,是否可以(没有boost这样的外部库)提示用户输入,如使用cin,但默认选项由用户编辑(没有GUI) 例如,程序会说: Give your input: default 用户可以按enter键使用“default”或按1键,然后按enter键获得“default1”,等等 编辑以澄清: 我目前在程序中所做的是在提示符中提供默认值(如下面的一个答案所示)。但我写的是非常特殊的情况,在这种情况下,拥有一个可编辑的默认值非常节省时间(90%的时间,用户需要的只是在默认值中添加一个后缀)。我只能提示输

是否可以(没有boost这样的外部库)提示用户输入,如使用cin,但默认选项由用户编辑(没有GUI)

例如,程序会说:

Give your input: default
用户可以按enter键使用“default”或按1键,然后按enter键获得“default1”,等等

编辑以澄清:


我目前在程序中所做的是在提示符中提供默认值(如下面的一个答案所示)。但我写的是非常特殊的情况,在这种情况下,拥有一个可编辑的默认值非常节省时间(90%的时间,用户需要的只是在默认值中添加一个后缀)。我只能提示输入后缀,但在其他10%的情况下,我失去了编辑默认值的灵活性。

如果没有外部库,这并不容易。所有终端的处理方式都不同——除非你想写很多代码,否则你需要一个库。我建议您研究一下。

您可能想要使用。

这通常与您描述的略有不同。将默认选项作为提示符的一部分而不是在提示符之后显示是相当常见的(至少我已经看到)。例如:

Please enter a year (default: 2009): 请输入年份(默认值:2009): 或

是否确实要退出(N): 这样做的另一个好处是,如果用户确实想输入他/她自己的值而不是默认值,那么他/她不需要删除现有值就可以这样做,这是很差的可用性,而且相当令人沮丧,尤其是在处理一系列问题/提示时


它也不需要特殊的库,也不需要太多额外的代码。

不过,有时候,一个可编辑的默认值很有用,比如提交消息、git或svn,或者任何时候你想向用户提供一个不完整的默认值;但我写的是非常特殊的情况,即拥有一个可编辑的默认值非常节省时间(90%的时间用户都需要在默认值中添加一个后缀)。我只能提示输入后缀,但在10%的情况下,我失去了编辑默认后缀的灵活性。@polyglot-将其写入您的问题中。基本原理很有用。具体来说,您需要
rl\u insert\u text()
。Readline在OSX()上有一些问题,但是您可以使用类似的
editline
库来代替(),您可能希望使用
el_insertstr()
。对于这种用例来说,诅咒将是一种巨大的杀伤力 Do you really want to exit (N):