D-Programlama Dili Kitabı, sayfa: 36 (pdf 'de sayfa: 36) 'da Verilen Örnek Üzerine
Verilen örneği çalıştırdığımda kitaptaki sonucun aynısını görmeyi umuyordum:
>import std.stdio;
void main( ){
write("Okulda kaç öğrenci var ?");
int öğrenci_sayısı;
readf("%s", &öğrenci_sayısı);
write("Okulda kaç öğretmen var? ");
int öğretmen_sayısı;
readf("%s", &öğretmen_sayısı);
writeln(
"Anladım: okulda ", öğrenci_sayısı, "öğrenci",
" ve ", öğretmen_sayısı, "öğretmen varmış.");
}
Kitaptaki Çıktı:
> >Okulda kaç öğrenci var? 100
Kaç öğretmen var? 20
Benim çıktıma göre "Kaç öğretmen var?" Diye bir soru gelemiyor.
İşte benim uçbirimimdeki çıktı:
Okulda kaç öğrenci var ?10
std.conv.ConvException@/usr/include/dmd/phobos/std/conv.d(2502): Unexpected '\n' >when converting from type LockingTextReader to type int
??:? int std.conv.parse!(int, std.stdio.LockingTextReader, 0).parse(ref >std.stdio.LockingTextReader) [0x55b439f573b5]
??:? int std.conv.parse!(int, std.stdio.LockingTextReader, 0).parse(ref >std.stdio.LockingTextReader, uint) [0x55b439f5702d]
??:? int std.format.internal.read.unformatValueImpl!(int,
std.stdio.LockingTextReader, char).unformatValueImpl(ref std.stdio.LockingTextReader, scope ref
const(std.format.spec.FormatSpec!(char).FormatSpec)) [0x55b439f568d8]
??:? int std.format.read.unformatValue!(int, std.stdio.LockingTextReader, >char).unformatValue(ref std.stdio.LockingTextReader, scope ref
const(std.format.spec.FormatSpec!(char).FormatSpec))
[0x55b439f567b8]
??:? uint std.format.read.formattedRead!(std.stdio.LockingTextReader, char, >int*).formattedRead(ref std.stdio.LockingTextReader, const(char)[], ref int*) [0x55b439f51074]
??:? uint std.stdio.File.readf!(int*).readf(scope const(char)[], ref int*) [0x55b439f50fca]
??:? uint std.stdio.readf!(int*).readf(scope const(char)[], int*) [0x55b439f50f2c]
??:? _Dmain [0x55b439f4f961]
Okulda kaç öğretmen var?
(program exited with code: 1)
Press return to continue
Evet, program yürütülürken kitapta öğretmen_sayısı 'nın okunamayacağı yazıyor. Ama program bana "Kaç öğretmen var?" sorusunu göstermeliydi. Sizce bu hatamı nasıl çözebilirim?
(Bu arada önceki sorumun çözümüne %d ve writefln() eklediğiniz için sağolun, Salih hocam. :) Yeni başlık açmam konusunda haklısınız Ali hocam ve beni soru sormaya teşvik ettiğiniz için size bir kere daha teşekkür ederim. :) )