GOLang Scanf-Fehler unter Windows
In GOLang tritt bei der Scanf-Funktion bekanntermaßen ein Fehler auf, wenn sie auf Windows-Systemen nacheinander verwendet wird. Während die erste Verwendung von Scanf erfolgreich Benutzereingaben abruft, schlagen nachfolgende Versuche fehl, was zu einem abrupten Verlassen der Funktion führt.
Um dieses Problem zu beheben, empfiehlt es sich, das Bufio-Paket zu verwenden, das einen verfeinerten Ansatz bietet . Bufio abstrahiert bestimmte Komplexitäten von Scanf, wie beispielsweise die Verwendung von Leerzeichen als Trennzeichen. Hier ist ein Beispiel für die Verwendung von Bufio zum ordnungsgemäßen Sammeln von Anmeldeinformationen:
<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) // ReadString() leaves a trailing newline character }</code>
Durch die Verwendung von ReadString zum Abrufen von Benutzereingaben beseitigt das Bufio-Paket das Problem, das bei Scanf unter Windows auftritt. Es verarbeitet auch das nachgestellte Newline-Zeichen automatisch und sorgt so für eine saubere und konsistente Datenerfassung.
Das obige ist der detaillierte Inhalt vonWarum schlägt Scanf unter Windows in Golang fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!