Hazır Değerler Çözümleri
- 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ındanlongolarak belirlenmesidir. Bu yüzden soldakiinttüründeki değişkene uymaz. Burada en az iki çözüm vardır. - 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.
Bir çözüm, açıkça int yazmak yerine, değişkenin türü için auto kullanmak ve tür seçimini derleyiciye bırakmaktır:
auto miktar = 10_000_000_000;
Böylece miktar değişkeninin değeri de long 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;
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 hem flush() ile çıkış ara belleğini boşaltır, hem de 1 milisaniye bekler:
import std.stdio; import core.thread; void main() { for (int sayı = 0; ; ++sayı) { write("\rSayı: ", sayı); stdout.flush(); Thread.sleep(dur!"msecs"(1)); } }
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.