Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membaca Rentetan Dipisahkan Ruang dengan fmt.Scanln dalam Go?

Bagaimana untuk Membaca Rentetan Dipisahkan Ruang dengan fmt.Scanln dalam Go?

Barbara Streisand
Lepaskan: 2024-11-03 13:15:03
asal
406 orang telah melayarinya

How to Read Space-Separated Strings with fmt.Scanln in Go?

Menggunakan fmt.Scanln untuk Membaca Rentetan yang Dipisahkan Angkasa

Semasa menggunakan fmt.Scanln(), adalah perkara biasa untuk menemui keadaan yang dikehendaki teks dipotong. Pertimbangkan contoh berikut:

<code class="go">package main

import "fmt"

func main() {
    var s string
    fmt.Scanln(&s)
    fmt.Println(s)
    return
}</code>
Salin selepas log masuk

Dengan input "30 bulan", output yang dijangkakan ialah "30 bulan", tetapi sebaliknya, hasilnya dipotong kepada "30." Ini kerana Scanln menjangkakan aksara baris baharu untuk menamatkan input.

Penyelesaian:

Untuk membaca token yang diasingkan ruang, gunakan keluarga Scan fmt:

<code class="go">package main

import (
    "fmt"
)

func main() {
    var s1 string
    var s2 string
    fmt.Scanln(&s1, &s2)
    fmt.Println(s1)
    fmt.Println(s2)
    return
}</code>
Salin selepas log masuk

Pendekatan ini secara eksplisit menentukan berbilang pembolehubah untuk input, memastikan setiap token dibaca dengan betul.

Penyelesaian Alternatif: bufio.Scan

Sebagai alternatif, pertimbangkan untuk menggunakan pengimbas bufio:

<code class="go">package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        s := scanner.Text()
        fmt.Println(s)
    }
    if err := scanner.Err(); err != nil {
        os.Exit(1)
    }
}</code>
Salin selepas log masuk

Kaedah ini membaca input baris demi baris, memberikan lebih fleksibiliti dan kawalan ke atas proses input.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Rentetan Dipisahkan Ruang dengan fmt.Scanln dalam Go?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan