fmt.Scanln을 사용하여 공백으로 구분된 문자열 읽기
fmt.Scanln()을 사용하는 동안 원하는 인스턴스를 만나는 것이 일반적입니다. 텍스트가 잘립니다. 다음 예를 고려하십시오.
<code class="go">package main import "fmt" func main() { var s string fmt.Scanln(&s) fmt.Println(s) return }</code>
"30월"을 입력하면 예상 출력은 "30월"이 되지만 결과는 "30"으로 잘립니다. 이는 Scanln이 개행 문자로 입력을 종료할 것으로 예상하기 때문입니다.
해결책:
공백으로 구분된 토큰을 읽으려면 fmt Scan 계열을 사용하십시오.
<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>
이 접근 방식은 입력에 대해 여러 변수를 명시적으로 지정하여 각 토큰이 올바르게 읽히도록 보장합니다.
대체 솔루션: bufio.Scan
또는 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>
이 방법은 입력을 한 줄씩 읽어 입력 프로세스에 대한 더 큰 유연성과 제어를 제공합니다.
위 내용은 Go에서 fmt.Scanln을 사용하여 공백으로 구분된 문자열을 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!