我想弄清楚当用户输入数字时是否有办法移动某些字符。
例如,我希望用户在[__]之间输入数字。但是,当用户输入号码时,它最终会覆盖']'。如何移动']'用户输入数字?
我希望我不必一次循环并获得单个字符。 (我期待双倍价值)
std::cout << "Enter a number between 1 and 10: []\b\b";
std::cin >> variable;
// not sure if I should loop through individual character input from user.
答案 0 :(得分:1)
只有在控制台支持它时才可以这样做,例如Windows控制台使用不同的代码到Linux。
您需要发送到终端的命令是ANSI转义序列,在此处描述:
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html
例如,您可以:
std::cout << "Enter a number between 1 and 10: [..]\033[D2";
(您可能需要稍微调整一下这个字符串,这不是我在很长一段时间内使用过的。)
打印提示,然后移动光标。