如何在C ++中控制stdin echo?

时间:2014-08-26 18:43:57

标签: c++ io

在Linux中,我可以使用tcsetattr,但我想编写一个可以打开和关闭cin回声的便携式C ++程序(用于输入密码)。 std :: io *中是否有支持此功能的内容?

2 个答案:

答案 0 :(得分:2)

不幸的是,没有可移植的方法来禁用控制台回显,因此您必须使用特定于操作系统的API。您可以使用预处理器编写可移植程序,但是您必须为支持的OS编写单独的代码并将其包装到#ifdef条件中。另一种解决方案是使用便携式库(如果存在这样的话),这样就可以为您做到这一点。

答案 1 :(得分:2)

不,没有。 C / C ++的IO库基于"流"模型,其中输入来自一些随机字符源(通常是控制台),输出类似地发送到一些随机字符目标。从某种意义上说,C / C ++根本不做回声 - 它是控制台系统 - 所以它无法控制回声是否发生。