從std::cin 讀取密碼而不回顯
從標準輸入讀取密碼而不回顯輸入字元的需求經常出現。為此,必須停用 std::cin 上的 echo。
Windows 和 UNIX 差異
停用 echo 的方法取決於作業系統。在 Windows 中,使用 GetConsoleMode 和 SetConsoleMode 函數,而在類別 UNIX 系統中,使用 tcgetattr 和 tcsetattr。
實作解決方案
提供的程式碼片段包括與作業系統無關的函數 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中文網其他相關文章!