Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Scanf Melangkau Input pada Windows? Penjelasan dan Penyelesaian Terperinci.

Mengapa Scanf Melangkau Input pada Windows? Penjelasan dan Penyelesaian Terperinci.

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 18:38:29491semak imbas

Why Does Scanf Skip Input on Windows? A Detailed Explanation and Solution.

Scanf Function Quirks pada Windows

Semasa menggunakan Scanf untuk input pengguna, tingkah laku pelik telah diperhatikan: ia berjaya mendapatkan semula input pada kali pertama , tetapi melangkau permintaan input kedua dan keluar secara tiba-tiba dari fungsi. Isu ini dihadapi secara khusus apabila dijalankan pada sistem Windows.

Kod dalam Soalan:

<code class="go">func credentials() (string, string) {

    var username string
    var password string

    fmt.Print("Enter Username: ")
    fmt.Scanf("%s", &username)

    fmt.Print("Enter Password: ")
    fmt.Scanf("%s", &password)

    return username, password
}</code>

Penyelesaian:

Kebergantungan Scanf pada ruang sebagai pemisah dan kelakuannya yang tidak intuitif boleh menjadi masalah. Untuk mengurangkan perkara ini, menggunakan pakej bufio menyediakan pendekatan yang lebih halus:

<code class="go">func credentials() (string, string) {
    reader := bufio.NewReader(os.Stdin)

    fmt.Print("Enter Username: ")
    username, _ := reader.ReadString('\n')

    fmt.Print("Enter Password: ")
    password, _ := reader.ReadString('\n')

    return strings.TrimSpace(username), strings.TrimSpace(password) // Remove any trailing newline characters
}</code>

Atas ialah kandungan terperinci Mengapa Scanf Melangkau Input pada Windows? Penjelasan dan Penyelesaian Terperinci.. 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