Wie verwende ich die fmt.Scanf
Funktion in Go, um eine ganzzahlige Eingabe von der Standardeingabe zu erhalten?
Wenn dies nicht möglich ist fmt.Scanf
, wie kann man dann eine einzelne Ganzzahl am besten lesen?
http://golang.org/pkg/fmt/#Scanf
Alle in Go enthaltenen Bibliotheken sind gut dokumentiert.
Davon abgesehen glaube ich
func main() {
var i int
_, err := fmt.Scanf("%d", &i)
}
macht den Trick
&i
und nicht nuri
wie infmt.Printf("%v", i)
?i
ist nur der ganzzahlige Wert ini
,&i
ist ein Zeiger aufi
.Eine Alternative, die etwas prägnanter sein kann, ist die Verwendung von
fmt.Scan
:Hierbei wird anhand der Art des Arguments ermittelt, wie die Eingabe analysiert werden soll.
http://golang.org/pkg/fmt/#Scan
quelle
Hier ist meine "Fast IO" -Methode zum Lesen positiver Ganzzahlen. Es könnte durch Bit-Shifts und das vorherige Auslegen des Speichers verbessert werden.
quelle
Golang fmt.Scan ist einfacher als Golang fmt.Scanf (was einfacher ist als Clang scanf)
Wenn fmt.Scan-Fehler, dh wenn nicht null, protokollieren und zurückgeben
1 Einzelne Variable lesen:
2 Lesen Sie mehrere Variablen:
Viel Glück
Beispiel von: http://www.sortedinf.com/?q=golang-in-1-hour
quelle
Sie können
fmt.Scanf
mit einem Formatbezeichner verwenden. Der Formatbezeichner für die Ganzzahl ist% d. Sie können also die Standardeingabe wie unten verwenden.oder Sie können
fmt.Scan
oderfmt.Scanln
wie unten verwenden.quelle