stdin/stdout
- Dart kursu
- İleri seviye
- Ders 57/83
- 5 dk
stdin ve stdout ile I/O öğrenirsin.
stdin ve stdout
stdin ve stdout, Dart'ın dart:io kütüphanesindeki girdi/çıktı nesneleridir. stdin.readLineSync() kullanıcıdan bir satır okur; stdout.writeln('mesaj') ekrana bir satır yazdırır.
Örnek: stdout.write('Adın: '); final name = stdin.readLineSync(); stdout.writeln('Merhaba $name');. Bu, kullanıcıdan ad ister ve selamlama yazdırır. CLI uygulamalarında etkileşimli girdi için kullanılır. readLineSync eşzamanlıdır (sync); yani satır gelene kadar bekler.
Etkileşimli girdi
Bir CLI aracı kullanıcıyla konuşur: soru sorar, cevap bekler, işlem yapar. stdout.write('Soru: ') ile soruyu yazdırır, stdin.readLineSync() ile cevabı okursun. Cevap bir String? döndüğü için ?? ile varsayılan verebilirsin.
Örnek: final name = stdin.readLineSync() ?? 'Misafir';. Kullanıcı boş girerse veya girdi biterse 'Misafir' kullanılır. Bu, CLI araçlarını dayanıklı yapar; beklenmeyen girdi çöküş değil varsayılan olur.
Uygulama stdout ile yazdır
import 'dart:io'; ekle. readName adında bir fonksiyon tanımla: stdout.write('Adın: ') çağrısı yapsın ve stdin.readLineSync() ?? 'Misafir' döndürsün. main içinde final name = 'Ayşe'; ile sabit bir ad belirle ve stdout.writeln('Merhaba $name') ile yazdır.
Başlangıç kodu
// dart:io kütüphanesini içe aktar
// readName fonksiyonunu tanımla (çıktı yaz + girdi oku)
void main() {
// sabit bir ad ile çıktı yazdır
}Örnek çözüm
import 'dart:io';
String readName() {
stdout.write('Adın: ');
return stdin.readLineSync() ?? 'Misafir';
}
void main() {
final name = 'Ayşe';
stdout.writeln('Merhaba $name');
}Beklenen çıktı
Merhaba Ayşe
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 stdin/stdout parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
stdin |
Girdi |
stdout |
Çıktı |
readLineSync |
Satır okur |
writeln |
Satır yazar |
2 stdin.readLineSync ne döndürür?
- double
- bool
- String? Doğru cevap
- int
Açıklama: stdin.readLineSync String? döndürür.
3 readLineSync çağrısı
String readName() {
stdout.write('Adın: ');
return stdin.____() ?? 'Misafir';
}
String readName() {
stdout.write('Adın: ');
return stdin.readLineSync() ?? 'Misafir';
}
Açıklama: stdin.readLineSync() kullanıcıdan bir satır okur.