> 백엔드 개발 > Golang > Fmt.Scanln을 사용하여 문자열에서 공백으로 구분된 문자열을 읽는 방법은 무엇입니까?

Fmt.Scanln을 사용하여 문자열에서 공백으로 구분된 문자열을 읽는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-04 00:04:03
원래의
449명이 탐색했습니다.

How to Read Space-Separated Strings from a String Using Fmt.Scanln?

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿