Re: Problem with std.string.strip(): Can't use result in format routine
On Tuesday, 5 September 2017 at 13:56:20 UTC, Andrea Fontana wrote: I used `lines(stdin)` as in https://dlang.org/phobos/std_stdio.html#.lines . My source code is here https://github.com/icy/dusybox/blob/master/src/plotbar/main.d#L47 . Thanks for your support. I think formattedRead is consuming your string. Great catch. You're right. Thanks a lot. `strip()` returns a slice. I use another reference variable to save them and it's fine now. [code] auto line_st = line.strip(); auto line_st2 = line_st; writefln("Stripped lined is %s", line_st2); // works fine [/code]
Re: Problem with std.string.strip(): Can't use result in format routine
On Tuesday, 5 September 2017 at 13:40:18 UTC, Ky-Anh Huynh wrote: On Tuesday, 5 September 2017 at 13:17:34 UTC, Azi Hassan wrote: Maybe it has something to do with how you read from STDIN. Can you show that part of the code to see if I can reproduce the issue ? I used `lines(stdin)` as in https://dlang.org/phobos/std_stdio.html#.lines . My source code is here https://github.com/icy/dusybox/blob/master/src/plotbar/main.d#L47 . Thanks for your support. I think formattedRead is consuming your string. Andrea
Re: Problem with std.string.strip(): Can't use result in format routine
On Tuesday, 5 September 2017 at 13:17:34 UTC, Azi Hassan wrote: Maybe it has something to do with how you read from STDIN. Can you show that part of the code to see if I can reproduce the issue ? I used `lines(stdin)` as in https://dlang.org/phobos/std_stdio.html#.lines . My source code is here https://github.com/icy/dusybox/blob/master/src/plotbar/main.d#L47 . Thanks for your support.
Re: Problem with std.string.strip(): Can't use result in format routine
On Tuesday, 5 September 2017 at 12:38:54 UTC, Ky-Anh Huynh wrote: Hi, I read line from STDIN , and strip them [code] auto line_st = line.strip(); [/code] However, I can't use result in another format routine. Assume my input line is "foobar": [code] writeln("Stripped line is %s", line_st); [/code] This code only prints "Stripped line is ". If I use instead [code] writeln("Stripped line is %s", line.strip()); [/code] the result is "Stripped line is foobar". What're the difference between the two uses? I'm using `dmd v2.075.1`. Thanks a lot. Maybe it has something to do with how you read from STDIN. Can you show that part of the code to see if I can reproduce the issue ?
Problem with std.string.strip(): Can't use result in format routine
Hi, I read line from STDIN , and strip them [code] auto line_st = line.strip(); [/code] However, I can't use result in another format routine. Assume my input line is "foobar": [code] writeln("Stripped line is %s", line_st); [/code] This code only prints "Stripped line is ". If I use instead [code] writeln("Stripped line is %s", line.strip()); [/code] the result is "Stripped line is foobar". What're the difference between the two uses? I'm using `dmd v2.075.1`. Thanks a lot.