Rešeno: dobiti unos u istoj liniji kao i pitanje

Posljednje ažuriranje: 09/13/2023

Rust programski jezik je veoma omiljen zbog svojih performansi, sigurnosti memorije i konkurentnosti. Međutim, budući da je sistemski programski jezik, ponekad može biti manje intuitivan za operacije početnicima koji su pristupačniji na drugim jezicima visokog nivoa, kao što je dobijanje korisničkih inputa. Ovaj članak će se baviti pitanjem kako dobiti unos na istoj liniji kao i pitanje u Rustu.

Dobijanje korisničkih inputa je značajno u razvoju interaktivnih programa ili aplikacija. U Rustu često koristimo standardni ulazni tok, Stdin, koji obezbjeđuje std::io modul. Međutim, ovo možda neće postaviti korisnički unos u isti red kao i pitanje. Hajde da vidimo kako to možemo postići.

koristite std::io::{self, Write};
neka mut input = String::new();
print!(“Unesite svoje ime: “);
io::stdout().flush().unwrap();
io::stdin().read_line(&mut input).unwrap();
neka ime: String = input.trim().to_string();
println!(“Zdravo, {}”, ime);

Korak po korak raščlamba koda

  • U prvom redu uvozimo potrebne module iz std::io. Io modul pruža Rustovu funkcionalnost za rad sa različitim tipovima ulaza i izlaza.
  • Zatim deklariramo promjenjivi string koji se zove input. Ovo će zadržati korisnički unos.
  • Štampa! makro se koristi za prikaz prompta za unos bez novog reda na kraju. Ovo je važno kako bi korisnički unos mogao biti na istoj liniji kao i pitanje.
  • Zbog print! funkcija ne isprazni automatski bafer stdout, moramo ga ručno isprazniti koristeći io::stdout().flush() poziv. Ovo osigurava da se upit za unos odmah prikaže.
  • Zatim koristimo funkciju read_line iz strukture Stdin i prosljeđujemo joj referencu ulaza. Ova funkcija čita korisnički unos s konzole i dodaje ga našoj ulaznoj varijabli. Također skraćujemo unos kako bismo uklonili sve znakove novog reda na kraju koji mogu ometati sljedeći kod.
  • Konačno, ispisujemo unos koji je dao korisnik.

Razumijevanje strukture Stdin i funkcije read_line

The Stdin struct predstavlja rukohvat standardnog ulaznog toka procesa. Ova struktura se koristi u našem kodu za dohvaćanje korisničkog unosa. Ova struktura dolazi sa različitim metodama koje se mogu koristiti za manipulaciju ulaznim podacima.

Najčešće korištena metoda Stdin strukture u Rustu je metoda read_line. The read_line() metoda u Rust-u spada pod Read osobinu. Obilježje Read je primarni API u Rustu za čitanje bajtova. Uzima &mut String kao parametar gdje je pohranjen ulazni niz.

Nadamo se da smo sada demistificirali dobijanje unosa na istoj liniji kao i pitanje u Rustu. Sljedeći put kada budete kodirali CLI u Rustu, zapamtite ove korake i kodirajte na način prilagođen korisniku.

Slični postovi: