是否可以(没有外部库,如boost)提示用户输入,例如使用cin,但是默认选项可由用户编辑(没有GUI)?
例如,程序会说:
Give your input: default
并且用户可以按Enter键使用“默认”或按1然后输入以获取“default1”等。
编辑澄清:
我目前在我的程序中提供的是提示中的默认值(如下面的答案之一)。但我正在编写非常特殊的情况,其中具有可编辑的默认值非常节省时间(并且90%的时间,所有用户需要为默认添加后缀)。我只能提示输入后缀,但是在其他10%的情况下我失去了编辑默认值的灵活性。
答案 0 :(得分:4)
您可能想要使用GNU readline。
答案 1 :(得分:3)
这通常与您描述的略有不同。它是相当常见的(至少我已经看到)将默认选项显示为提示的一部分而不是它之后。例如:
Please enter a year (default: 2009):
或
Do you really want to exit (N):
这具有额外的优势,如果用户 想要输入他/她自己的值而不是默认值,他/她不需要删除现有值以便这样做,这是一个糟糕的可用性和相当令人沮丧的,特别是如果处理一系列的问题/提示。
它也不需要特殊的库,也不需要额外的代码。
答案 2 :(得分:0)
没有外部库不容易。所有终端都以不同的方式处理 - 除非您想编写 lot 代码,否则您需要一个库。我建议你研究一下Ncurses。