Lecture des mots de passe depuis std::cin sans écho
Le besoin de lire les mots de passe à partir de l'entrée standard sans faire écho aux caractères saisis se pose régulièrement. Pour y parvenir, il est essentiel de désactiver l'écho sur std::cin.
Différences Windows et UNIX
La méthode de désactivation de l'écho dépend du système d'exploitation. Sous Windows, les fonctions GetConsoleMode et SetConsoleMode sont utilisées, tandis que dans les systèmes de type UNIX, tcgetattr et tcsetattr sont utilisés.
Implémentation de la solution
L'extrait de code fourni comprend une fonction indépendante du système d'exploitation, SetStdinEcho, qui permet de basculer l'écho pour std :: cin. Un exemple d'utilisation est également fourni, montrant comment lire un mot de passe sans écho, puis l'écho lorsque l'utilisateur appuie sur Entrée :
#include <iostream> #include <string> int main() { SetStdinEcho(false); std::string password; std::cin >> password; SetStdinEcho(true); std::cout << password << std::endl; return 0; }
Ce code garantit que le mot de passe de l'utilisateur reste privé lors de sa saisie et s'affiche en cas de saisie réussie. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!