エコーなしで std::cin からパスワードを読み取る
入力文字をエコーせずに標準入力からパスワードを読み取る必要性が定期的に発生します。これを実現するには、std::cin でエコーを無効にすることが不可欠です。
Windows と UNIX の違い
エコーを無効にする方法はオペレーティング システムによって異なります。 Windows では GetConsoleMode 関数と SetConsoleMode 関数が使用されますが、UNIX 系システムでは tcgetattr と tcsetattr が使用されます。
ソリューションの実装
提供されるコード スニペットには次のものが含まれますOS に依存しない関数 SetStdinEcho により、エコーの切り替えが可能になります。 std::cin。使用例も提供されており、エコーなしでパスワードを読み取り、ユーザーが Enter キーを押したときにそれをエコーする方法を示しています。
#include <iostream> #include <string> int main() { SetStdinEcho(false); std::string password; std::cin >> password; SetStdinEcho(true); std::cout << password << std::endl; return 0; }
このコードにより、ユーザーのパスワードが入力中、および入力が成功したときに表示される間は非公開のままであることが保証されます。 .
以上がパスワードをエコーせずに標準入力から読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。