Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan fungsi fmt.Fscanf untuk membaca data berformat daripada rentetan dan menetapkannya kepada pembolehubah sehingga pembatas yang ditentukan ditemui.

Gunakan fungsi fmt.Fscanf untuk membaca data berformat daripada rentetan dan menetapkannya kepada pembolehubah sehingga pembatas yang ditentukan ditemui.

WBOY
WBOYasal
2023-07-25 10:13:271290semak imbas

Gunakan fungsi fmt.Fscanf untuk membaca data berformat daripada rentetan dan tetapkan ia kepada pembolehubah sehingga pembatas yang ditentukan ditemui

Dalam pakej fmt bahasa Go, satu siri fungsi input dan output disediakan, termasuk Fungsi fmt. Fscanf untuk memformat input. Dengan menggunakan fungsi ini, anda boleh membaca data dalam format tertentu daripada rentetan dan menetapkannya kepada pembolehubah yang sepadan.

Pertama, mari kita lihat contoh mudah.

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "42 3.14 Go"
    var num int
    var pi float64
    var lang string

    _, err := fmt.Fscanf(strings.NewReader(str), "%d %f %s", &num, &pi, &lang)
    if err != nil {
        fmt.Printf("格式化输入错误:%s
", err)
        return
    }

    fmt.Printf("num: %d
", num)
    fmt.Printf("pi: %f
", pi)
    fmt.Printf("lang: %s
", lang)
}

Dalam kod di atas, kami mentakrifkan str rentetan, yang mengandungi integer, nombor titik terapung dan rentetan, dipisahkan dengan ruang.

Seterusnya, kami menggunakan fungsi fmt.Fscanf untuk membaca data daripada rentetan ini dalam format yang ditentukan dan menetapkan hasilnya kepada pembolehubah yang sepadan.

Dalam contoh ini, kami menentukan tiga pembolehubah: num, pi dan lang masing-masing untuk menerima data baca. Kami membolehkan fmt.Fscanf menyimpan nilai baca ke dalam pembolehubah yang sepadan dengan menghantar alamat memori mereka (menggunakan & operator) sebagai parameter.

%Rentetan format menentukan jenis data yang kami harapkan untuk dibaca. Dalam contoh ini, %d mewakili integer, %f mewakili nombor titik terapung dan %s mewakili rentetan.

Perhatikan bahawa kami menggunakan fungsi rentetan.NewReader untuk membalut str rentetan ke dalam pelaksanaan antara muka io.Reader supaya ia boleh dihantar ke fungsi fmt.Fscanf. Ini dilakukan kerana fungsi fmt.Fscanf memerlukan parameter jenis io.Reader, dan ia boleh membaca data daripada sebarang jenis yang melaksanakan antara muka ini.

Akhir sekali, kami menyemak sama ada bacaan berjaya dengan menyemak pembolehubah ralat. Jika ralat bukan nol, ralat input terformat telah berlaku.

Jika semuanya baik, kita boleh mencetak nilai yang kita baca.

Dalam kod di atas, kami mencetak nilai num, pi dan lang menggunakan fungsi fmt.Printf. Anda boleh memproses nilai ini mengikut keperluan anda sendiri.

Ringkasnya, dengan menggunakan fungsi fmt.Fscanf, kita boleh membaca data berformat daripada rentetan dengan mudah dan menetapkannya kepada pembolehubah yang sepadan. Ini berguna untuk mengendalikan input pengguna, menghuraikan data fail, dsb. Rentetan format yang berbeza boleh digunakan untuk menentukan jenis data yang berbeza. Perlu diingat bahawa apabila pembatas yang ditentukan ditemui semasa proses membaca, bacaan akan berhenti dan data yang tinggal akan ditinggalkan dalam aliran input.

Atas ialah kandungan terperinci Gunakan fungsi fmt.Fscanf untuk membaca data berformat daripada rentetan dan menetapkannya kepada pembolehubah sehingga pembatas yang ditentukan ditemui.. 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