Golang odczytał ze stdin

Golang odczytał ze stdin
W większości języków programowania możesz czytać dane wejściowe z konsoli i przechowywać je w zmiennej. Programowanie go nie pozostaje w tym względzie. W tym artykule dowiemy się, jak przeczytać dane wejściowe z konsoli w programowaniu Go.

Wymagane import

Aby odczytać dane wejściowe z konsoli, musimy zaimportować kilka pakietów. Pierwszy to pakiet Bufio, pakiet FMT i pakiet systemu operacyjnego.

Pakiet Bufio umożliwia odczytanie znaków ze stdina. Pakiet FMT służy do obsługi operacji we/wy, a system operacyjny zapewnia funkcje systemu niskiego poziomu.

Poniższy fragment importuje wszystkie wymagane pakiety:

import (
„Bufio”
„FMT”
„OS”
)

Golang czytaj znak

Zobaczmy, jak przeczytać pojedynczy znak Unicode ze stdina w języku Go. Rozważ następujący podany kod:

Pakiet Main
import (
„Bufio”
„FMT”
"dziennik"
„OS”
)
func main ()
fmt.Println („wpisz znak>”)
czytnik: = bufio.NewReader (OS.Stdin)
char, _, err: = czytnik.ReadRune ()
Jeśli err != zero
dziennik.Fatalny (err)

fmt.Printf („Unicode char: %u \ n”, char)

W poprzednim przykładzie tworzymy nowego czytnika z pakietu Bufio i przekazujemy system operacyjny.Stdin jako parametr.

Następnie czytamy znak i błąd od czytelnika. Zauważ, że używamy metody ReadRune (), aby zwrócić znak Unicode.

Poprzedni kod powinien zwrócić wyjście, jak pokazano:

Wpisz znak>
A
Unicode Char: U+0041

Powyższe wyjście pokazuje punkt kodu Unicode dla znaku „a."

Golang odczytał multi-line

Jeśli chcesz odczytać wiele wierszy z konsoli, możesz użyć metody ReadString () zamiast ReadRune, jak pokazano powyżej.

Przykład kodu jest podany poniżej:

Pakiet Main
import (
„Bufio”
„FMT”
"dziennik"
„OS”
)
func main ()
fmt.Println („Wprowadź ciąg”)
czytnik: = bufio.NewReader (OS.Stdin)
Str, err: = czytnik.ReadString („\ n”)
Jeśli err != zero
dziennik.Fatalny (err)

fmt.Printf („%s”, str)

W tym przykładzie czytelnik będzie stale odczytywał dane wejściowe od użytkownika, dopóki nie napotknie określonego ogranicznika. W naszym przykładzie, jeśli czytelnik napotyka postać nowej linii, przestaje czytać.

Jeśli uruchomimy kod, powinniśmy uzyskać wyjście jako:

Wprowadź ciąg

Witaj świat ze stdin

Skaner Golang

Inną metodą, którą możemy użyć do przyjęcia danych wejściowych ze stdina, jest metoda skanera. Metoda NewsCanner () jest bardzo przydatna podczas czytania pliku. Możemy jednak użyć go do czytania ze stdin.

Przykład kodu pokazano poniżej:

Pakiet Main
import (
„Bufio”
„FMT”
„OS”
)
func main ()
Skaner: = bufio.Newscanner ((OS.Stdin))
input: = Make ([] String, 0)
Do
fmt.Println („Wpisz tutaj:”)
Skaner.Skanowanie()
txt: = skaner.Tekst()
input = append (input, txt)
przerwa

fmt.Println (wejście)

Poprzedni kod odczytuje dane wejściowe od użytkownika i dołącza do wycinka wejściowego. Możesz rozwinąć poprzedni kod, aby stale odczytać wejście i zakończyć, gdy nie zostanie dostarczona żadna wartość.

Wniosek

Jak widać z tego przewodnika, programowanie Go zapewnia nam kilka sposobów czytania danych wejściowych ze stdin. Możesz wybrać dowolną metodę odpowiadającą Twoim potrzebom. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły w Linux, aby uzyskać więcej wskazówek i samouczków.