例如,显示如下内容:
'Insert player name: StackUser'
默认情况下显示“ StackUser ”,但如果查找其他名称,则允许用户更改该文本。这个默认文本在窗口程序中很常见,但我不知道它是否可以在基于命令行的程序上执行。
答案 0 :(得分:1)
传统的方法(回到20世纪60年代的Fortran程序)是做这样的事情,适用于任何类型的控制台(甚至是打印终端):
#include <iostream>
#include <string>
using namespace std;
int main () {
string nam = "StackUser";
cout << "Enter your name (or press <Enter> for '" << nam << "'): ";
string newname;
getline(cin,newname);
if (newname.length() > 0) {
nam = newname;
}
cout << "Username is " << nam << endl;
return 0;
}
调用此程序default
后,它现在可以像这样运行:
$ ./default
Enter your name (or press <Enter> for 'StackUser'):
Username is StackUser
$ ./default
Enter your name (or press <Enter> for 'StackUser'): Simon
Username is Simon
如果您希望用户能够将光标移回默认文本并进行编辑,那么这样做的方式取决于您工作的特定环境(例如特定的控制台或控制台模拟器) 。在Unix中,您可以使用curses
库在Unix系统支持的几乎任何终端上执行此操作(例如,例外包括打印终端),但这对于在(例如)中运行的C ++程序不起作用。 Windows命令行。但是,将光标移回到右边点以编辑默认文本所需的击键次数将超过键入替换所需的次数,因此我认为让用户键入替换是明智的选择。