使用用户输入动态更改控制台
Dynamically Change Console with User Input
我正试图弄清楚,当用户输入数字时,是否有办法在一行中移动某些字符。
例如,我希望用户输入他们在[__]之间的号码。但是,当用户输入数字时,它最终会覆盖"]"。当用户输入数字时,我该如何移动"]"?
我希望我不必一次循环并获得单个字符。(我期待一个双倍的价值)
std::cout << "Enter a number between 1 and 10: []bb";
std::cin >> variable;
// not sure if I should loop through individual character input from user.
这只有在控制台支持的情况下才有可能,例如,windows控制台使用与Linux不同的代码。
您需要发送到终端的命令是ANSI转义序列,如下所述:
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html
- 定位光标:\033[;H或\033[;f将光标放在L行和C列
- 将光标上移N行:\033
- 将光标下移N行:\033[B
- 将光标向前移动N列:\033[C
- 将光标向后移动N列:\033[天
例如,你可以:
std::cout << "Enter a number between 1 and 10: [..] 33[D2";
(你可能需要稍微调整一下这个字符串,这不是我用了很长时间的东西)。
打印提示,然后移动光标。
相关文章:
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- C++中的动态铸造故障
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- C++:将控制台输出存储在宏中更好吗
- 内联映射初始化的动态atexit析构函数崩溃
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 控制允许动态运行c++的并发操作数
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 输出没有重复元素的动态数组(收缩数组)C++
- C++为线程工作动态地分割例程
- 正在插入动态数组
- C++控制台应用程序阻止退出
- 如何修复此iFile以将.txt输出到控制台
- 使用 C++ shell 为 C++ 中的 2 D 动态数组赋值,控制台不会打印出任何内容
- 使用用户输入动态更改控制台
- 使用 Libtcod,如何控制台>打印具有动态颜色量的字符串?