Heim  >  Artikel  >  Backend-Entwicklung  >  Warum schlägt Scanf unter Windows fehl und wie kann ich es mit bufio beheben?

Warum schlägt Scanf unter Windows fehl und wie kann ich es mit bufio beheben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 11:12:30435Durchsuche

Why Does Scanf Fail on Windows and How Can I Fix It with bufio?

Beheben von Scanf-Problemen in Go unter Windows

Die Scanf-Funktion in Go ist für potenzielle Komplikationen bekannt, insbesondere auf Windows-Systemen. Beim Ausführen eines Programms, das Scanf zweimal verwendet, tritt das Problem auf, wenn die zweite Eingabeanforderung nicht registriert wird, was dazu führt, dass die Funktion abrupt beendet wird.

Um dieses Problem zu beheben, wird empfohlen, das bufio-Paket zu verwenden, das Folgendes bietet: benutzerfreundlichere Möglichkeit zur Handhabung von Ein- und Ausgabevorgängen. Der folgende Code demonstriert die bufio-Alternative:

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

    fmt.Print("Enter Username: ")
    username, _ := reader.ReadString('\n') // Read the username, discarding any errors

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

    return strings.TrimSpace(username), strings.TrimSpace(password) // Remove trailing newline characters
}</code>

Der Hauptunterschied besteht hier in der Verwendung von bufio.NewReader(), was eine strukturiertere Eingabeverarbeitung ermöglicht. Die ReadString()-Funktion liest Benutzereingaben bis zum angegebenen Trennzeichen (in diesem Fall „n“), was zu einem konsistenteren Eingabeabruf über verschiedene Betriebssysteme hinweg führt.

Durch die Verwendung dieses bufio-basierten Ansatzes können Sie dies tun Umgehen Sie die potenziellen Fallstricke von Scanf und sorgen Sie für eine zuverlässige Eingabeverarbeitung, unabhängig davon, ob Ihr Programm unter Windows oder Mac ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWarum schlägt Scanf unter Windows fehl und wie kann ich es mit bufio beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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