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