D lang - Verwenden von read und readln () im selben Programm

Ich habe ein sehr seltsames Problem mit einem D-Programm. read ("% s", variable) funktioniert von selbst und readln (variable) funktioniert von selbst, aber wenn ich die beiden zusammenfasse, scheint readln () übergangen zu werden. Der Fehler trat bei Verwendung von GDC und DMD auf.

import std.stdio;
import std.string;

void main()
{
    int x;
    write("Enter a number: ");
    readf(" %s", &x);

    write("What is your name? ");
    string name=chomp(readln());

    writeln("Hello ", name, "!");
}

Ausgabe:

Enter a number: 5
What is your name? Hello !

Wenn ich jedoch readf ("% s", & x) auskommentiere, wird readln wie gewünscht aufgerufen:

Enter a number: What is your name? hjl
Hello hjl!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage