Ruosteen ohjelmointikieli on erittäin suosittu suorituskyvyn, muistin turvallisuuden ja samanaikaisuuden vuoksi. Koska se on kuitenkin järjestelmän ohjelmointikieli, se saattaa joskus olla vähemmän intuitiivinen aloitteleville kehittäjille, jotka ovat helpommin käytettävissä muilla korkean tason kielillä, kuten käyttäjien syötteiden saaminen. Tämä artikkeli käsittelee kysymystä siitä, kuinka saada syöte samalle riville Rustin kysymyksen kanssa.
Käyttäjien panosten saaminen on tärkeää vuorovaikutteisten ohjelmien tai sovellusten kehittämisessä. Rustissa käytämme usein std::io-moduulin tarjoamaa standarditulovirtaa, Stdin. Tämä ei kuitenkaan välttämättä aseta käyttäjän syötettä samalle riville kysymyksen kanssa. Katsotaanpa, miten voimme saavuttaa tämän.
käytä std::io::{itse, kirjoita};
let mut input = String::new();
tulosta!("Syötä nimesi: ");
io::stdout().flush().unwrap();
io::stdin().read_line(&mut input).unwrap();
anna nimi: Merkkijono = input.trim().to_string();
println!("Hei, {}", nimi);
Koodin vaiheittainen erittely
- Ensimmäisellä rivillä tuomme tarvittavat moduulit std::io:sta. io-moduuli tarjoaa Rustin toiminnot erityyppisten tulojen ja lähtöjen käsittelyyn.
- Sitten julistamme muuttuvan merkkijonon, jota kutsutaan syötteeksi. Tämä säilyttää käyttäjän syötteen.
- Printti! makroa käytetään näyttämään syöttökehote ilman uutta riviä lopussa. Tämä on tärkeää, jotta käyttäjän syöte voi olla samalla rivillä kysymyksen kanssa.
- Koska Tulosta! toiminto ei tyhjennä stdout-puskuria automaattisesti, meidän on tyhjennettävä se manuaalisesti io::stdout().flush()-kutsulla. Tämä varmistaa, että syöttökehote tulee näkyviin välittömästi.
- Käytämme sitten Stdin-rakenteen read_line-funktiota ja välitämme sille syötteen viittauksen. Tämä toiminto lukee käyttäjän syötteen konsolista ja liittää sen syöttömuuttujaamme. Leikkaamme myös syötettä poistaaksemme kaikki rivinvaihdon merkit, jotka voivat häiritä myöhempää koodia.
- Lopuksi tulostamme käyttäjän antaman syötteen.
Stdin-rakenteen ja read_line-funktion ymmärtäminen
- Stdin rakenne edustaa kahvaa prosessin vakiosyöttövirtaan. Tätä rakennetta käytetään koodissamme käyttäjän syötteen hakemiseen. Tämä rakenne sisältää erilaisia menetelmiä, joita voidaan käyttää syötetietojen käsittelyyn.
Yleisimmin käytetty Stdin-rakenteen menetelmä Rustissa on read_line-menetelmä. The Lue rivi() Rustin menetelmä kuuluu Read-ominaisuuden alle. Read-ominaisuus on Rustin ensisijainen API tavujen lukemiseen. Se ottaa &mut Stringin parametrina, johon syötemerkkijono tallennetaan.
Toivottavasti olemme nyt poistaneet mysteerin saamisen samalle riville kysymyksen kanssa Rustissa. Kun seuraavan kerran koodaat CLI:tä Rustissa, muista nämä vaiheet ja koodaa käyttäjäystävällisellä tavalla.
