Fmt.Scanln을 사용하여 문자열에서 공백으로 구분된 문자열 읽기
fmt 패키지의 일부인 Scanln 함수를 사용하면 다음을 읽을 수 있습니다. 문자열에서 입력. 그러나 Scanln을 사용할 때 발생하는 일반적인 문제는 공백으로 구분된 여러 단어가 필요할 때 첫 번째 단어만 가져오는 것입니다.
제공된 예에서:
<code class="go">package main import "fmt" func main() { var s string fmt.Scanln(&s) fmt.Println(s) return }</code>
입력으로 이 코드를 실행할 때 "월 31일"이면 예상되는 "월 31일" 대신 "31"이 출력됩니다. 이는 Scanln이 공백을 무시하고 입력을 단일 토큰으로 처리하기 때문입니다.
이 문제를 해결하려면 다음 해결 방법을 활용할 수 있습니다.
1. 여러 변수를 동시에 스캔
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>
이 코드는 "31"과 "월"을 올바르게 출력합니다.
2. Bufio 스캐너 사용
bufio 패키지는 문자열을 포함한 다양한 소스에서 입력을 읽는 프로세스를 단순화합니다.
<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>
이 코드를 사용하면 각 줄을 읽고 인쇄할 수 있습니다. 개별적으로.
위 내용은 Fmt.Scanln을 사용하여 문자열에서 공백으로 구분된 문자열을 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!