D lang - Usando read e readln () no mesmo programa

Estou tendo um problema muito estranho com um programa em D. read ("% s", variável) funciona bem por si só e readln (variável) funciona bem por si só, mas quando eu coloco os dois juntos, readln () parece ser ignorado. O erro ocorreu usando o gdc e o dmd.

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, "!");
}

Resultado:

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

No entanto, se eu comentar o readf ("% s", & x), o readln será chamado como desejo:

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

questionAnswers(1)

yourAnswerToTheQuestion