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 중국어 웹사이트의 기타 관련 기사를 참조하세요!