我想cin>>输入,但是当他们输入内容时,我不希望它们对他们可见。就像你在unix中使用passwd更改密码而不显示你输入的内容一样。我希望很清楚我在问什么。提前谢谢。
答案 0 :(得分:6)
这不是标准的C ++特性--C ++甚至不需要你的系统有键盘或屏幕。这意味着每个操作系统和供应商都会有所不同。 有关特定安装的详细信息,请阅读编译器随附的文档。
答案 1 :(得分:2)
cin
不是这样做的方法,因为操作系统(通常)回应标准输入。您需要做的是处理操作系统级别的关键事件。
答案 2 :(得分:2)
对于类Unix系统有getpass(3)
,它可以做你想要的。
然而,
使用标准C或C ++无法做到这一点。
答案 3 :(得分:1)
如果你想要的是你输入密码登录linux盒子时所做的事情,那么在C或C ++中无法实现这种行为。您必须使用特定于平台的库来执行此操作。更具体地说,C和C ++中的控制台输入始终会回显到控制台。
答案 4 :(得分:0)
让它检测按键。可以这样想:当用户在视频游戏中按下“A”键时,程序会运行代码;不要把它当作接收输入。可以将其视为检测击键并将每个击键添加到某些数据结构(例如阵列)。
我熟悉您正在谈论的UNIX终端中的功能,它不允许您退格或任何东西。如果你想要这个功能,那就按我上面所说的做。
如果您希望能够退格,虽然用户将无法看到它们退格的内容,但您可以编写代码,在用户单击退格时删除该数组的最后一个元素。
此外,当其他人说你需要对你正在运行它的系统进行特定编程时,其他人都是正确的。
最后,如果您使用密码并将其放入数组中,这可能不安全。