Heim >Backend-Entwicklung >Golang >Warum entfernt „reader.ReadString' nicht das anfängliche Trennzeichen?

Warum entfernt „reader.ReadString' nicht das anfängliche Trennzeichen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-24 05:31:14813Durchsuche

Why Doesn't `reader.ReadString` Remove the Initial Delimiter?

reader.ReadString entfernt das anfängliche Trennzeichen nicht

In dem Bemühen, ein Programm zu erstellen, das Benutzer namens Alice oder Bob, einen Entwickler, begrüßt Es ist ein Problem aufgetreten, bei dem selbst legitime Namen eine unerwünschte Reaktion auslösten. Das Programm hat sowohl Alice als auch Bob fälschlicherweise den Zutritt verweigert.

Das Problem

Das Problem ergibt sich aus der Verwendung von reader.ReadString('n') im Programm. Diese Funktion ruft Zeichen ab, bis ein Zeilenumbruchzeichen gefunden wird. Allerdings wird das Trennzeichen nicht automatisch aus der zurückgegebenen Zeichenfolge entfernt, was dazu führt, dass eine zusätzliche neue Zeile in die Eingabe des Benutzers eingefügt wird.

Lösung

Um dieses Problem zu beheben , es gibt zwei mögliche Vorgehensweisen:

1. Schneiden Sie die neue Zeile ab

Verwenden Sie die Funktion strings.TrimSpace, um alle führenden oder nachgestellten Leerzeichen aus der Eingabezeichenfolge zu entfernen, bevor Sie sie auswerten. Dadurch wird das Zeilenumbruchzeichen, das das Problem verursacht hat, effektiv entfernt.

2. Verwenden Sie ReadLine anstelle von ReadString

Alternativ kann die ReadLine-Funktion anstelle von ReadString verwendet werden. ReadLine ruft eine Textzeile ab, ohne das Zeilenumbruchzeichen in die zurückgegebene Zeichenfolge aufzunehmen.

Erklärung

Der Grund für die Verwendung von string(text) mit ReadLine ist folgender ReadLine gibt ein Byte-Slice zurück, während aliceOrBob ein String-Argument erfordert.

Das obige ist der detaillierte Inhalt vonWarum entfernt „reader.ReadString' nicht das anfängliche Trennzeichen?. 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