Weird behaviour with File.eof

crimaniak via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Sep 22 02:23:04 PDT 2015


On Sunday, 20 September 2015 at 20:17:37 UTC, Dandyvica wrote:

> My file is made of 10 lines:
>
>
> cat numbers.txt
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> 10
>
> ╰─$ wc -l numbers.txt
CR/LF can be interpreted as line _dividers_, so if you have CR or 
CR/LF at the end of line 10, really here is line 11 which is 
empty. Remove end of line symbols at line 10 and you will have 
expected output:

before readln eof=false, line=<1>, after readln eof=false
before readln eof=false, line=<2>, after readln eof=false
before readln eof=false, line=<3>, after readln eof=false
before readln eof=false, line=<4>, after readln eof=false
before readln eof=false, line=<5>, after readln eof=false
before readln eof=false, line=<6>, after readln eof=false
before readln eof=false, line=<7>, after readln eof=false
before readln eof=false, line=<8>, after readln eof=false
before readln eof=false, line=<9>, after readln eof=false
before readln eof=false, line=<10>, after readln eof=true

p.s. it's good style to check input parameters, even for most 
simple cases.



More information about the Digitalmars-d-learn mailing list