Girdi okuma
- Rust kursu
- Başlangıç
- Ders 61/115
- 6 dk
std::io::stdin ile kullanıcının tahminini okursun.
Girdi okuma
Kullanıcıdan satır okumak için boş bir String açılır ve read_line'a &mut olarak verilir. Satır sonundaki \n da metne eklenir:
let mut tahmin = String::new();
io::stdin()
.read_line(&mut tahmin)
.expect("Satır okunamadı");
println!("Tahminin: {}", tahmin.trim());read_line bir io::Result<usize> döndürür (okunan bayt sayısı); expect hata olursa mesajla programı durdurur.
Neden &mut ve ekleme?
read_line metni sonuna ekler, üzerine yazmaz. Döngüde aynı String'i yeniden kullanacaksan her turda tahmin.clear() çağırmalısın. Bu derslerdeki alıştırmalarda girdi yerine sabit bir metin kullanacağız; aynı trim ve parse adımları gerçek girdide de geçerlidir.
let mut tahmin = String::new();
tahmin.push_str("12\n");
tahmin.clear();
tahmin.push_str("34\n");
println!("{}", tahmin.trim()); // 34Uygulama Girdiyi temizle
Kullanıcı girdisini temsil eden let girdi = String::from(" 42\n"); metnini trim ile temizle ve Tahmin: 42 biçiminde yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn main() {
let girdi = String::from(" 42\n");
let t = girdi.trim();
println!("Tahmin: {}", t);
}Beklenen çıktı
Tahmin: 42
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kullanıcı <code>42</code> yazıp Enter'a basarsa <code>tahmin</code> neyi içerir?
- Boş metin
- "42\n" (Windows'ta "42\r\n") Doğru cevap
- 42 sayısı
- "42"
Açıklama: read_line satır sonunu da ekler; trim ile temizlenir.
2 Satırı oku
let mut tahmin = String::new();
io::stdin()
.read_line(____)
.expect("Satır okunamadı");
let mut tahmin = String::new();
io::stdin()
.read_line(&mut tahmin)
.expect("Satır okunamadı");
Açıklama: read_line metni yazabilmek için değiştirilebilir referans ister.
3 Parça ve görevi
| Kavram | Anlamı |
|---|---|
io::stdin() |
Standart girdi |
read_line |
Satırı ekler |
expect |
Hatada durdurur |
trim() |
Boşluk ve \n atar |