fmt.scanln을 사용하여 공백으로 구분된 문자열을 구문 분석하는 방법
fmt.scanln은 표준 입력에서 입력을 읽고 스캔하는 데 사용되는 함수입니다. 구조화된 변수로 변환합니다. 그러나 공백으로 구분된 문자열을 읽을 때 예상치 못한 동작이 발생할 수 있습니다.
기본적으로 fmt.scanln은 첫 번째 개행 문자에서 스캔을 중지합니다. 이로 인해 사용자가 공백으로 구분된 여러 단어가 포함된 문자열을 입력했지만 첫 번째 단어만 캡처되는 상황이 발생할 수 있습니다.
예를 들어 다음 코드를 고려하세요.
<code class="go">package main import "fmt" func main() { var s string fmt.Scanln(&s) fmt.Println(s) return }</code>
사용자가 "월 31일"을 입력하면 "31"만 s 변수에 캡처됩니다. 이는 fmt.scanln이 공백 문자인 공백 문자를 발견한 후 스캔을 중지하기 때문에 발생합니다.
이 문제를 해결하고 공백으로 구분된 여러 단어를 캡처하려면 다음 중 하나를 수행할 수 있습니다.
다중 fmt.Scanln 문 사용:
<code class="go">package main import "fmt" func main() { var s1 string var s2 string fmt.Scanln(&s1, &s2) fmt.Println(s1) fmt.Println(s2) return }</code>
버퍼 스캐너 사용:
<code class="go">package main import ( "bufio" "fmt" "os" ) func main() { scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { s := scanner.Text() fmt.Println(s) } if err := scanner.Err(); err != nil { os.Exit(1) } }</code>
위 내용은 Go에서 fmt.Scanln을 사용하여 공백으로 구분된 문자열을 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!