ホームページ >バックエンド開発 >C++ >パスワードをエコーせずに標準入力から読み取るにはどうすればよいですか?

パスワードをエコーせずに標準入力から読み取るにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-22 16:24:10255ブラウズ

How Can I Read Passwords from Standard Input Without Echoing Them?

エコーなしで 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。