Eingaben scannen
Formatierte Eingaben lesen
Eingaben scannen ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Eingaben mit fmt lesen
Das Paket fmt kann Werte nicht nur ausgeben, sondern auch einlesen. Die Scan-Funktionen parsen Text in typisierte Variablen.
Sie sind das Gegenstück zu den Ausgabefunktionen.
package main
import "fmt"
func main() {
var n int
fmt.Sscan("42", &n)
fmt.Println(n + 1)
}Pointer sind erforderlich
Scan-Funktionen müssen ein Ergebnis speichern. Deshalb übergeben Sie mit & die Adresse jeder Variablen.
Das & zu vergessen, ist der häufigste Fehler beim Scannen.
package main
import "fmt"
func main() {
var a, b int
fmt.Sscan("3 4", &a, &b)
fmt.Println(a + b)
}Sscan trennt an Leerzeichen
fmt.Sscan liest durch Leerzeichen getrennte Werte aus einer Zeichenkette in mehrere Variablen ein und ermittelt den Typ anhand jedes Pointers.
package main
import "fmt"
func main() {
var name string
var age int
fmt.Sscan("Ada 36", &name, &age)
fmt.Println(name, age)
}Sscanf verwendet ein Format
fmt.Sscanf parst gemäß einer Formatzeichenkette – ähnlich wie Printf, nur umgekehrt. Wörtliche Zeichen im Format müssen mit der Eingabe übereinstimmen.
package main
import "fmt"
func main() {
var h, m int
fmt.Sscanf("09:05", "%d:%d", &h, &m)
fmt.Println(h, m)
}Prüfen, wie viele Werte gelesen wurden
Scan-Funktionen geben die Anzahl erfolgreich geparster Elemente und einen Fehler zurück. Prüfen Sie die Anzahl, um festzustellen, ob das Parsen vollständig erfolgreich war.
package main
import "fmt"
func main() {
var a, b int
count, _ := fmt.Sscan("7", &a, &b)
fmt.Println("parsed:", count)
}Parse-Fehler behandeln
Wenn die Eingabe nicht dem erwarteten Typ entspricht, wird ein Fehler zurückgegeben. Prüfen Sie ihn bei echten Eingaben immer.
package main
import "fmt"
func main() {
var n int
_, err := fmt.Sscan("notanumber", &n)
if err != nil {
fmt.Println("error:", err)
}
}Gemischte Typen parsen
Sie können mehrere verschiedene Typen in einem Aufruf einlesen. Der Typ jedes Pointers bestimmt, wie sein Token geparst wird.
package main
import "fmt"
func main() {
var word string
var price float64
var ok bool
fmt.Sscan("apple 1.50 true", &word, &price, &ok)
fmt.Println(word, price, ok)
}Sscanf mit Literaltext
Sscanf eignet sich hervorragend für feste Strukturen wie Koordinaten oder Schlüssel-Wert-Paare, bei denen Satzzeichen die Zahlen voneinander trennen.
package main
import "fmt"
func main() {
var x, y int
fmt.Sscanf("(3,8)", "(%d,%d)", &x, &y)
fmt.Println(x, y)
}Gleitkommazahlen einlesen
Verwenden Sie %f in Sscanf oder einen *float64 in Sscan, um Dezimalzahlen einzulesen.
package main
import "fmt"
func main() {
var temp float64
fmt.Sscanf("21.5C", "%fC", &temp)
fmt.Println(temp)
}Scan vs. Stdin
fmt.Scan und fmt.Scanf lesen genauso aus der Standardeingabe, wie Sscan aus einer Zeichenkette liest. Die Parsing-Regeln sind identisch; nur die Quelle ist eine andere.
package main
import "fmt"
func main() {
line := "100 200"
var a, b int
fmt.Sscan(line, &a, &b)
fmt.Println(a * b)
}Ein kleiner Parser
Kombinieren Sie das Scannen mit einer Berechnung, um einen Datensatz zu parsen und ein Ergebnis zu erzeugen.
package main
import "fmt"
func main() {
var name string
var qty int
var unit float64
fmt.Sscanf("pen 3 1.25", "%s %d %f", &name, &qty, &unit)
fmt.Printf("%s total: $%.2f\n", name, float64(qty)*unit)
}Schnelltest
Was müssen Sie an eine Scan-Funktion übergeben, damit sie das Ergebnis speichern kann?
Rückblick: Eingaben scannen
Sie haben gelernt, formatierte Eingaben zu lesen:
Sscantrennt an Leerraum;Sscanffolgt einer Formatzeichenkette.- Übergeben Sie mit
&für jedes Ziel einen Pointer. - Prüfen Sie die zurückgegebene Anzahl und den Fehler, um fehlerhafte Eingaben zu erkennen.
package main
import "fmt"
func main() {
var d, mo, y int
fmt.Sscanf("30/05/2026", "%d/%d/%d", &d, &mo, &y)
fmt.Println(y, mo, d)
}Lerne Go mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 51
- Lektionen
- 203
Häufig gestellte Fragen
Ist die Lektion „Eingaben scannen“ kostenlos?
Ja — der vollständige Text von „Eingaben scannen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Eingaben scannen“?
Formatierte Eingaben lesen Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Go Academy zu starten?
Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Eingaben scannen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?
Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Printf-Formatverben
- Sprintf und Fprintf
- Das Stringer-Interface
- Eingaben scannen