Go-Grundlagen

Reading User Input in Go

Read a line with bufio, trim it and convert it to a number without crashing on bad input.

  • Einsteiger
  • 3 Min. Lesezeit
  • 1 ausführbares Beispiel
Das lernst du
  • bufio.NewReader
  • strings.TrimSpace
  • strconv.Atoi
From the keyboard to a number
  1. 1ReadString"36\n"
  2. 2TrimSpace"36"
  3. 3strconv.Atoi36, nil
  4. 4age + 137

Text in, number out

bufio.NewReader reads from the keyboard one line at a time. The text always arrives as a string, so numbers must be converted with strconv before you calculate with them.

ReadString('\n') returns everything up to the Enter key, and TrimSpace removes the line ending. strconv.Atoi returns the number and an error; the error is not nil when the text is not a number. The sample output uses the answers Ada and 36: in the online compiler, type your answers when the prompts appear.

Das Wichtigste

  1. ReadString('\n') reads up to the Enter key.
  2. TrimSpace removes the line ending.
  3. Atoi returns the number and an error.

Ausführbares Go-Beispiel

Go
Code ausführen →
main.go
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	reader := bufio.NewReader(os.Stdin)

	fmt.Println("What is your name?")
	name, _ := reader.ReadString('\n')
	name = strings.TrimSpace(name)

	fmt.Println("How old are you?")
	text, _ := reader.ReadString('\n')

	age, err := strconv.Atoi(strings.TrimSpace(text))
	if err != nil {
		fmt.Printf("Hello, %s! That is not a number.\n", name)
		return
	}
	fmt.Printf("Hello, %s! Next year you will be %d.\n", name, age+1)
}
Run-Button für dieses Beispiel erstellen Ergebnis der Ausführung
What is your name?
How old are you?
Hello, Ada! Next year you will be 37.

Üben

Öffne das Beispiel im Online-Compiler, ändere einen Wert oder füge eine Zeile hinzu und sage die Ausgabe voraus, bevor du es ausführst. Bring den Code danach absichtlich zum Scheitern und lies die Meldung des Compilers.

Lektion fertig?

Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges