ホームページ  >  記事  >  バックエンド開発  >  fmt.Fscanf 関数を使用して、文字列から書式設定されたデータを読み取り、指定された区切り文字に達するまでそれを変数に割り当てます。

fmt.Fscanf 関数を使用して、文字列から書式設定されたデータを読み取り、指定された区切り文字に達するまでそれを変数に割り当てます。

WBOY
WBOYオリジナル
2023-07-25 10:13:271328ブラウズ

fmt.Fscanf 関数を使用して、文字列から書式設定されたデータを読み取り、指定された区切り文字に達するまでそれを変数に割り当てます。

Go 言語の fmt パッケージには、一連の入力関数と出力関数があり、入力をフォーマットするための関数 fmt.Fscanf が含まれます。この関数を使用すると、文字列から指定した形式のデータを読み取り、対応する変数に代入することができます。

まず、簡単な例を見てみましょう。

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)
}

上記のコードでは、整数、浮動小数点数、および文字列をスペースで区切って含む文字列 str を定義します。

次に、fmt.Fscanf 関数を使用して、この文字列から指定された形式でデータを読み取り、結果を対応する変数に割り当てます。

この例では、読み取りデータを受け取るために、それぞれ num、pi、lang の 3 つの変数を定義しました。 fmt.Fscanf がメモリ アドレス (& 演算子を使用) をパラメータとして渡すことで、読み取った値を対応する変数に格納できるようにします。

%フォーマット文字列は、読み取ることが予想されるデータ型を指定します。この例では、%d は整数、%f は浮動小数点数、%s は文字列を表します。

strings.NewReader 関数を使用して文字列 str を io.Reader インターフェイスの実装にラップし、fmt.Fscanf 関数に渡せるようにしていることに注意してください。これが行われるのは、fmt.Fscanf 関数が io.Reader 型のパラメーターを必要とし、このインターフェイスを実装する任意の型からデータを読み取ることができるためです。

最後に、err 変数をチェックして、読み取りが成功したかどうかを確認します。 err が nil でない場合、フォーマットされた入力エラーが発生しています。

すべてがOKであれば、読み取った値を出力できます。

上記のコードでは、fmt.Printf 関数を使用して、num、pi、lang の値を出力します。これらの値は、必要に応じて処理できます。

要約すると、fmt.Fscanf 関数を使用すると、文字列から書式設定されたデータを簡単に読み取り、対応する変数に割り当てることができます。これは、ユーザー入力の処理、ファイル データの解析などのシナリオに役立ちます。異なるフォーマット文字列を使用して、異なるデータ型を指定できます。読み取りプロセス中に指定された区切り文字に遭遇すると、読み取りが停止され、残りのデータが入力ストリームに残されることに注意してください。

以上がfmt.Fscanf 関数を使用して、文字列から書式設定されたデータを読み取り、指定された区切り文字に達するまでそれを変数に割り当てます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。