Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Membaca Kata Laluan daripada Input Standard Tanpa Menggemakannya?

Bagaimanakah Saya Boleh Membaca Kata Laluan daripada Input Standard Tanpa Menggemakannya?

Susan Sarandon
Susan Sarandonasal
2024-12-22 16:24:10218semak imbas

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

Membaca Kata Laluan daripada std::cin tanpa Bergema

Keperluan untuk membaca kata laluan daripada input standard tanpa bergema aksara input timbul dengan kerap. Untuk mencapai matlamat ini, adalah penting untuk melumpuhkan gema pada std::cin.

Perbezaan Windows dan UNIX

Kaedah untuk melumpuhkan gema bergantung pada sistem pengendalian. Dalam Windows, fungsi GetConsoleMode dan SetConsoleMode digunakan, manakala dalam sistem seperti UNIX, tcgetattr dan tcsetattr digunakan.

Melaksanakan Penyelesaian

Coretan kod yang disediakan termasuk fungsi OS-agnostik, SetStdinEcho, yang membolehkan gema togol untuk std::cin. Contoh penggunaan juga disediakan, menunjukkan cara membaca kata laluan tanpa bergema dan kemudian menggemakannya apabila pengguna menekan enter:

#include <iostream>
#include <string>

int main()
{
    SetStdinEcho(false);

    std::string password;
    std::cin >> password;

    SetStdinEcho(true);

    std::cout << password << std::endl;

    return 0;
}

Kod ini memastikan kata laluan pengguna kekal peribadi semasa dimasukkan dan dipaparkan apabila input berjaya .

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Kata Laluan daripada Input Standard Tanpa Menggemakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn