CodeBlanks Logo Icon CodeBlanks

Girdi okuma

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());   // 34

Uygulama 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

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
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

Soru
let mut tahmin = String::new();
io::stdin()
    .read_line(____)
    .expect("Satır okunamadı");
Cevap
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

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma