Windows의 GOLang에서 Scanf 사용 시 오류
GOLang의 Scanf 함수는 사용자 입력을 두 번 얻으려고 시도할 때 문제가 발생할 수 있습니다. 첫 번째 입력은 성공적으로 검색되지만 Windows 시스템에서 두 번째 시도 중에 함수가 갑자기 종료됩니다. 이 동작은 macOS에서는 발생하지 않습니다.
<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 trailing newline character }</code>
이 수정된 코드는 문제를 해결하고 Windows와 macOS 모두에서 원활하게 작동합니다.
위 내용은 Windows에서 Go의 두 번째 입력에서 Scanf가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!