Heim > Backend-Entwicklung > Golang > Warum schlägt Scanf unter Windows in Golang fehl?

Warum schlägt Scanf unter Windows in Golang fehl?

Mary-Kate Olsen
Freigeben: 2024-11-03 16:11:03
Original
326 Leute haben es durchsucht

Why is Scanf Failing on Windows in Golang?

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage