readln() returns new line charater

Marco Leise Marco.Leise at gmx.de
Sun Dec 29 18:59:16 PST 2013


Am Sun, 29 Dec 2013 22:03:14 +0000
schrieb "Jeroen Bollen" <jbinero at gmail.com>:

> On Sunday, 29 December 2013 at 18:13:30 UTC, Jakob Ovrum wrote:
> > On Sunday, 29 December 2013 at 17:25:39 UTC, Jeroen Bollen 
> > wrote:
> >> Wouldn't byline return an empty string if the inputstream is 
> >> exhausted but not closed?
> >
> > No, both `readln` and `byLine` will block until either EOL or 
> > EOF. They differ in their handling of EOF - `readln` returns an 
> > empty string, while the result of `byLine` reports empty (it is 
> > a range) and calling `front` is an error.
> 
> But wouldn't that mean I'd still end up making my char[] mutable, 
> as I still need to manually remove the last character, AFTER I 
> checked it's not empty?

No, strings have immutable characters, but there is nothing
wrong with using only part of it as an array slice:

  string s = readln();
  s = s[0 .. $-1];

(just to illustrate)

-- 
Marco



More information about the Digitalmars-d mailing list