我的应用程序使用读取用户输入std::cin
溪流。
在一个地方,我想提供默认输入并让用户按原样接受它(通过按 Enter 键)或在继续之前修改它(通过使用退格键删除旧字符并添加新文本)。
我知道字符可以直接放入cin.rdbuf
,但这并不是我想要实现的目标。
我想将字符放入控制台窗口中等待用户输入时控制台光标所在的位置,并且在用户接受它们之前不要读取它们。用户还应该能够删除它们并编写自己的文本。
可以使用这样的东西来实现吗cin
或者我是否必须通过读取单个字符并重新绘制控制台内容来模拟这一点?
不,这样的事情不能用std::cin
。其读取缓冲区直接从标准输入读取。标准输入是“熟的”字符流。所有编辑完全由操作系统的终端控制台处理,然后按Enter
结果在您的应用程序中std::cin
读取输入的文本。
传统的方法是简单地在提示本身中指示默认输入值,并在输入为空时使用默认值,例如:
std::string buffer;
std::cout << "What color is the sky [blue]? ";
std::getline(std::cin, buffer);
if (buffer.size() == 0)
buffer="blue";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)