Rumah > pembangunan bahagian belakang > Golang > Mengapa Scanf Gagal pada Input Kedua dalam Go pada Windows?

Mengapa Scanf Gagal pada Input Kedua dalam Go pada Windows?

DDD
Lepaskan: 2024-10-26 11:14:29
asal
629 orang telah melayarinya

Why Does Scanf Fail on Second Input in Go on Windows?

Ralat Menggunakan Scanf dalam GOLang pada Windows

Fungsi Scanf dalam GOLang boleh menimbulkan isu apabila cuba mendapatkan input pengguna dua kali. Input pertama berjaya diambil, tetapi fungsi itu ditamatkan secara tiba-tiba semasa percubaan kedua pada sistem Windows. Tingkah laku ini tidak berlaku pada macOS.

<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>
Salin selepas log masuk

Penyelesaian:

Scanf adalah pelik dalam penggunaan ruang sebagai pemisah, menjadikannya agak mencabar untuk digunakan. Bufio menawarkan alternatif unggul yang memudahkan proses.

<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 trailing newline character
}</code>
Salin selepas log masuk

Kod yang diubah suai ini menangani isu dan berfungsi dengan lancar pada kedua-dua Windows dan macOS.

Atas ialah kandungan terperinci Mengapa Scanf Gagal pada Input Kedua dalam Go pada Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan