もしかしてdinも日本語通らないですか?

din.readLine(name);
とやって

printf("%s%s%s", toMBSz("あなたの名前は"), toMBSz(name), toMBSz("です。\n"));
あなたの名前はです。

printf("%s%s%s", toMBSz("あなたの名前は"), name, toMBSz("です。\n"));
あなたの名前は(null)(null)

になってしまいます。
これもstd.c.stdioのsscanfを使えという事でしょうか?
せっかくDなのでできればバッファサイズの事気にしないで済む
char[]を使える関数が使えると嬉しいなあと思うのですが。
というかgetlineが使えるC++より退化してるような…