std.file.readText() extra Line Feed character
Colin via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Dec 18 02:16:37 PST 2014
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;)
More information about the Digitalmars-d-learn
mailing list