| |
 | Posted by Ali Çehreli (acehreli) | Permalink Reply |
|
Ali Çehreli (acehreli) 
| 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
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
|