Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menangkap Input \'30 bulan\' dengan fmt.Scanln?

Bagaimana untuk Menangkap Input \'30 bulan\' dengan fmt.Scanln?

Linda Hamilton
Linda Hamiltonasal
2024-11-04 09:43:01192semak imbas

How to Capture

Menyelesaikan Pencapaian Input "30 bulan" dengan fmt.Scanln

Dalam kod asal, menggunakan fmt.Scanln menimbulkan cabaran apabila mencuba untuk mendapatkan semula "30 bulan" sebagai input. Fungsi ini membaca token yang dipisahkan ruang, menghasilkan pengambilan semula "30" tanpa "bulan" yang dimaksudkan.

Penyelesaian:

  1. Menggunakan Berbilang Pembolehubah untuk Mengimbas: Dengan memberikan berbilang pembolehubah sebagai argumen kepada fmt.Scanln, setiap token boleh ditangkap secara berasingan, membolehkan pengekalan ruang antara perkataan.
<code class="go">var s1 string
var s2 string
fmt.Scanln(&s1, &s2)
fmt.Println(s1) // Prints "30"
fmt.Println(s2) // Prints "of month"</code>
  1. Menggunakan bufio.Scanner untuk Penghuraian Input Terperinci:
    Bufio.Scanner menyediakan pendekatan yang lebih terperinci untuk pengendalian input. Dengan berulang kali memanggil pengimbas.Scan(), ia berulang pada setiap baris input, menangkapnya sebagai rentetan.
<code class="go">scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
    s := scanner.Text()
    fmt.Println(s) // Prints "30 of month"
}
if err := scanner.Err(); err != nil {
    os.Exit(1)
}</code>

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Input \'30 bulan\' dengan fmt.Scanln?. 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