> 백엔드 개발 > Golang > Scanf가 Windows에서 입력을 건너뛰는 이유는 무엇입니까? 자세한 설명과 해결책.

Scanf가 Windows에서 입력을 건너뛰는 이유는 무엇입니까? 자세한 설명과 해결책.

Mary-Kate Olsen
풀어 주다: 2024-10-26 18:38:29
원래의
580명이 탐색했습니다.

Why Does Scanf Skip Input on Windows? A Detailed Explanation and Solution.

Windows의 Scanf 함수 이상한 점

Scanf를 사용자 입력으로 활용하는 동안 특이한 동작이 관찰되었습니다. 처음으로 입력을 성공적으로 검색합니다. , 그러나 두 번째 입력 요청을 건너뛰고 갑자기 함수를 종료합니다. 이 문제는 특히 Windows 시스템에서 실행할 때 발생합니다.

문제 코드:

<code class="go">func credentials() (string, string) {

    var username string
    var password string

    fmt.Print("Enter Username: ")
    fmt.Scanf("%s", &username)

    fmt.Print("Enter Password: ")
    fmt.Scanf("%s", &password)

    return username, password
}</code>
로그인 후 복사

해결책:

Scanf가 공백을 구분 기호로 사용하는 것과 그 비직관적인 동작은 문제가 될 수 있습니다. 이를 완화하기 위해 bufio 패키지를 사용하면 보다 세련된 접근 방식이 제공됩니다.

<code class="go">func credentials() (string, string) {
    reader := bufio.NewReader(os.Stdin)

    fmt.Print("Enter Username: ")
    username, _ := reader.ReadString('\n')

    fmt.Print("Enter Password: ")
    password, _ := reader.ReadString('\n')

    return strings.TrimSpace(username), strings.TrimSpace(password) // Remove any trailing newline characters
}</code>
로그인 후 복사

위 내용은 Scanf가 Windows에서 입력을 건너뛰는 이유는 무엇입니까? 자세한 설명과 해결책.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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