std.file.readText() extra Line Feed character

Colin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Dec 18 02:51:08 PST 2014


On Thursday, 18 December 2014 at 10:43:32 UTC, yazd wrote:
> On Thursday, 18 December 2014 at 10:16:38 UTC, Colin wrote:
>> On Thursday, 18 December 2014 at 09:25:47 UTC, ketmar via 
>> Digitalmars-d-learn wrote:
>>> On Thu, 18 Dec 2014 09:18:35 +0000
>>> Colin via Digitalmars-d-learn 
>>> <digitalmars-d-learn at puremagic.com> wrote:
>>>
>>>> Why does std.file.readText() append a Line Feed char onto 
>>>> the end of the string?
>>>> 
>>>> I have a file with the following contents in it:
>>>> Name   =               Int
>>>> Other=Float
>>>> One More = String(Random;)
>>>> 
>>>> I then have the code:
>>>> 
>>>> void main(string[] args){
>>>>    const text = "Name   =               Int
>>>> Other=Float
>>>> One More = String(Random;)";
>>>> 
>>>>    string input = readText(args[1]);
>>>> 
>>>>    writefln("Raw data");
>>>>    writefln("D)    %s", cast(ubyte[])text[$-5..$]);
>>>>    writefln("File) %s", cast(ubyte[])input[$-5..$]);
>>>> 
>>>> }
>>>> 
>>>> This produces:
>>>> Raw data
>>>> D)    [100, 111, 109, 59, 41]
>>>> File) [111, 109, 59, 41, 10]
>>>> 
>>>> Any Idea why the reading from the File adds on that extra 
>>>> '10' character?
>>>> 
>>>> I don't think it's my editor adding chars to the end of the 
>>>> file, as I'm using vi.
>>>
>>> you *definetely* has the last line ended with '\n'.
>>
>> I dont see how, I copy and pasted from the string definition 
>> in D, directly after the first " and directly before the last 
>> ".
>>
>> If I look at the file in vim with line numbers turned on, the 
>> file is like this. So I really dont think I have a new line in 
>> the file...
>>
>>  1 Name   =               Int
>>  2 Other=Float
>>  3 One More = String(Random;)
>
> You can make sure using `hexdump -C file`. I tested locally 
> creating a file using vi, and it does indeed have a '\n' at the 
> end of file.

Ah, I see. That's a little annoying.
Thanks folks!


More information about the Digitalmars-d-learn mailing list