In Python int() and float() convert a string into a number even if it contains 
some whitespace before and after the number:


>>> s = " 12\n"
>>> int(s)
12
>>> float(s)
12.0


In D  to!int(" 12\n")  gives a run-time error. So time ago I have weakly asked 
Andrei to change to!int, to let it ignore leading and trailing whitespace, but 
he has ignored my request.

A leading newline comes often from input stdin.readln() and other sources. So 
in D you need to add a strip():

int n = to!int(stdin.readln().strip());

I sometimes forget to add the strip(). Do you know why Andrei has not 
appreciated the idea of to!int and similar functions to ignore leading and 
trailing whitespace?

Bye,
bearophile

Reply via email to