[Issue 4165] New: std.conv.to!int doesn't ignore whitespace

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun May 9 05:20:47 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=4165

           Summary: std.conv.to!int doesn't ignore whitespace
           Product: D
           Version: future
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: nobody at puremagic.com
        ReportedBy: bearophile_hugs at eml.cc


--- Comment #0 from bearophile_hugs at eml.cc 2010-05-09 05:20:45 PDT ---
Too much flexibility in a language and its libs causes several problems, but
the opposite too makes the language and its use fussy. So there is a right
intermediate point of balance to be found.

The conversion from string to numbers performed by std.conv.to is excessively
rigid.

In Python this conversion works:

>>> int(" 0123\n")
123


In D v.2.043 the same produces an error:

import std.conv: to;
void main() {
    int x = to!int(" 0123\n");
}

std.conv.ConvError: Can't convert value ` 0123
' of type const(char)[] to type int


Can std.conv.to be modified to ignore whitespace?
In particular the ending newline is very common, for example every time I want
to convert a line from a text file to a number I have to use something like
this:

to!int(readln().chomp());

Instead of a simpler:

to!int(readln());

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list