D lang - Uso de read y readln () en el mismo programa

Tengo un problema muy extraño con un programa D. read ("% s", variable) funciona bien por sí mismo y readln (variable) funciona bien por sí mismo, pero cuando pongo los dos juntos, readln () parece pasarse por alto. El error ocurrió usando ambos gdc y 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, "!");
}

Salida:

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

Sin embargo, si comento readf ("% s", & x), readln se llama como deseo:

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta