readln() doesn't stop to read the input.
Ivan Kazmenko via Digitalmars-d
digitalmars-d at puremagic.com
Fri Mar 27 00:28:18 PDT 2015
On Friday, 27 March 2015 at 04:37:34 UTC, jonaspm wrote:
> Please, i need your help, I tried this:
>
> write("Write p: ");
> readln(p);
> p = chomp(p);
> writeln("Write q: ");
> readln(q);
> q = chomp(q);
>
> but the result is:
> Write p: Write q:
>
> and doesn't pause to read keyboard input... what's wrong?
>
> Thanks in advance!
The easiest to use is the form "<string> = readln()":
write("Write p: ");
auto p = readln().chomp();
write("Write q: ");
auto q = readln().chomp();
The second version, "<length> = readln(<buffer>)", goes something
like:
auto buf = new char[1024];
write("Write p: ");
string p = buf[0..readln(buf)].chomp().idup;
write("Write q: ");
string q = buf[0..readln(buf)].chomp().idup;
It allows to reuse a preallocated buffer for greater speed and
finer allocation control.
Also worth noting, the best place for such questions in D.learn
group:
http://forum.dlang.org/group/digitalmars.D.learn
Ivan Kazmenko.
More information about the Digitalmars-d
mailing list