반향 없이 std::cin에서 비밀번호 읽기
입력 문자를 에코하지 않고 표준 입력에서 비밀번호를 읽어야 하는 필요성이 정기적으로 발생합니다. 이를 위해서는 std::cin에서 에코를 비활성화하는 것이 중요합니다.
Windows와 UNIX의 차이점
에코를 비활성화하는 방법은 운영 체제에 따라 다릅니다. Windows에서는 GetConsoleMode 및 SetConsoleMode 기능이 사용되는 반면 UNIX 계열 시스템에서는 tcgetattr 및 tcsetattr이 사용됩니다.
솔루션 구현
제공된 코드 조각에는 다음이 포함됩니다. OS에 구애받지 않는 기능인 SetStdinEcho는 에코를 토글할 수 있습니다. 표준::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 중국어 웹사이트의 기타 관련 기사를 참조하세요!