Hazır Değerler
- Buradaki sorun, sağ taraftaki hazır değerin bir
int
'e sığmayacak kadar büyük olması ve o yüzden de türünün derleyici tarafındanlong
olarak belirlenmesidir. Bu yüzden soldakiint
türündeki değişkene uymaz. Burada en az iki çözüm vardır.Bir çözüm, açıkça
int
yazmak yerine, değişkenin türü içinauto
kullanmak ve tür seçimini derleyiciye bırakmaktır:auto miktar = 10_000_000_000;
Böylece
miktar
değişkeninin değeri delong
olarak seçilir.Diğer çözüm, değişkenin türünü de açıkça
long
yazmaktır:long miktar = 10_000_000_000;
- Burada satırın başına götüren
'\r'
karakteri kullanılabilir. Böylece hep aynı satırın üstüne yazılır.import std.stdio; void main() { for (int sayı = 0; ; ++sayı) { write("\rSayı: ", sayı); } }
Yukarıdaki programın çıktısı hem fazla hızlı hem de
stdout
'un ara belleğinin dolup boşalmasına bağlı olarak tutarsız olabilir. Aşağıdaki program her yazmadan sonra hemflush()
ile çıkış ara belleğini boşaltır, hem de 10 milisaniye bekler:import std.stdio; import core.thread; void main() { for (int sayı = 0; ; ++sayı) { write("\rSayı: ", sayı); stdout.flush(); Thread.sleep(10.msecs); } }
Normalde çıkış ara belleğinin açıkça boşaltılmasına gerek yoktur. Ara bellek yeni satıra geçmeden önce veya girişten bilgi okunmadan önce de otomatik olarak boşaltılır.