Bastiaan Veelo wrote:
Hi,
I am having trouble explaining the following to someone learning D. Can
someone explain why readln has different behaviour when it is preceded by
readf?
Suppose we want to not end the program before the user presses Enter by
having readln at the end of main():
```
import std.stdio;
void main()
{
int num;
write("Give a number ");
readf(" %s", num);
writeln("Thanks");
readln;
readln;
}
```
In this example this requires twice readln. When you comment out readf,
you need readln only once.
Thanks!
'cause your `readf()` stops before consuming `'\n`. i.e. EOL is still in
input buffer, and first `readln()` will immediately consume it.