>백엔드 개발 >Golang >使用fmt.Fscanf函数从字符串中读取格式化的数据并赋值给变量,直到遇到指定分隔符

使用fmt.Fscanf函数从字符串中读取格式化的数据并赋值给变量,直到遇到指定分隔符

WBOY
WBOY원래의
2023-07-25 10:13:271375검색

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의 세 가지 변수를 정의했습니다. fmt.Fscanf를 활성화하여 메모리 주소(& 연산자 사용)를 매개변수로 전달하여 읽은 값을 해당 변수에 저장할 수 있습니다.

%형식 문자열은 우리가 읽을 것으로 예상되는 데이터 유형을 지정합니다. 이 예에서 %d는 정수를 나타내고, %f는 부동 소수점 숫자를 나타내고, %s는 문자열을 나타냅니다.

strings.NewReader 함수를 사용하여 문자열 str을 io.Reader 인터페이스 구현으로 래핑하여 fmt.Fscanf 함수에 전달할 수 있다는 점에 유의하세요. 이는 fmt.Fscanf 함수에 io.Reader 유형의 매개변수가 필요하고 이 인터페이스를 구현하는 모든 유형에서 데이터를 읽을 수 있기 때문에 수행됩니다.

마지막으로 err 변수를 확인하여 읽기 성공 여부를 확인합니다. err이 nil이 아니면 형식화된 입력 오류가 발생한 것입니다.

모든 것이 괜찮다면 읽은 값을 인쇄할 수 있습니다.

위 코드에서는 fmt.Printf 함수를 사용하여 num, pi 및 lang 값을 인쇄했습니다. 자신의 필요에 따라 이러한 값을 처리할 수 있습니다.

요약하자면, fmt.Fscanf 함수를 사용하면 문자열에서 형식화된 데이터를 쉽게 읽고 해당 변수에 할당할 수 있습니다. 이는 사용자 입력 처리, 파일 데이터 구문 분석 등에 유용합니다. 다양한 형식 문자열을 사용하여 다양한 데이터 유형을 지정할 수 있습니다. 읽기 프로세스 중에 지정된 구분 기호를 만나면 읽기가 중지되고 나머지 데이터는 입력 스트림에 남게 됩니다.

위 내용은 使用fmt.Fscanf函数从字符串中读取格式化的数据并赋值给变量,直到遇到指定分隔符의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:다음 기사: