On 12/28/2013 08:50 AM, Jeroen Bollen wrote:

> On Saturday, 28 December 2013 at 16:49:15 UTC, Jeroen Bollen wrote:
>> Why is when you do readln() the newline character (\n) gets read too?

Because it is possible to remove but hard or expensive or even impossible (was there a newline?) to add back if needed.

>> Wouldn't it make more sense for that character to be stripped off?
>
> I just want to add to this, that it makes it really annoying to work
> with the command line, as you kinda have to strip off the last character
> and thus cannot make the string immutable.

It is pretty easy actually:

import std.stdio;
import std.string;

void main()
{
    string line = readln.chomp;
}

(Or with various combinations of parethesis and without UFCS. :) )

That works even when you wanted the whole string to be immutable:

    immutable char[] line = readln.chomp;

Or, perhaps more preferably:

    immutable(char[]) line = readln.chomp;

Ali

Reply via email to