Forum: Ders Arası RSS
Girişteki '\n' ve diğer boşlukları gözardı etmek
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Girişteki '\n' ve diğer boşlukları gözardı etmek
Girişten veri okumayı artık anladığımı düşünüyordum ama şu program beni şaşırttı:

import std.stdio;
import std.string;
 
void main()
{
    double d;
    readf(" %s", &d);
    writeln("okudum: ", d);
 
    // (burası)
 
    string s = chomp(readln());
    writeln("okudum: ", s);
}

double okunurken basılan '\n' karakteri string'in boş okunmasına neden oluyor. Yukarıda "burası" diye işaretlediğim yere şunu ekleyince sorun çözülüyor:

    readf(" ");

Aslında d'nin okunduğu zamanki düzen dizgisini " %s " (iki boşlukla) yazınca da istediğim gibi olmasını beklerdim ama tam istendiği gibi olmuyor. Çünkü o zaman d'nin arkasından yazılan "okudum:" mesajı da bir sonraki s için Enter'a basıldıktan sonra çıkıyor.

Neden olduğunu anlayabiliyorum ama önemli değil. readf(" ")'i kullanışlı bir yöntem olarak öğrenmiş oldum.

Ali
erdem (Moderatör) #2
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
İlginçmiş gerçekten de. double okurken basılan yeni satır karakterini stringe nasıl atıyor hayret.

Ben zaten şu mesajdan beri olabildiğince readln kullanıyorum.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-21, 11:21:28 (UTC -08:00)