Reading by character and by line from stdin
Timon Gehr
timon.gehr at gmx.ch
Thu Aug 25 15:19:18 PDT 2011
On 08/25/2011 11:34 PM, bellinom wrote:
> Thanks for that, I didn't realize they were that far out of date. I
use the latest
> version of the compiler on my home PC, so I'd like to know the most
current ways
> of reading from stdin.
>
> Thanks
Currently what you get is readf and readln with std.conv.to, and if you
need speed for formatted reads, use the C function scanf.
Some examples:
import std.stdio;
read a single line:
string r=readln();
read array of whitespace-delimited integers on a single line:
auto arr=to!(int[])(strip!(readln()));
read all of stdin by line:
foreach(s; stdin.byLine){
// s is the current line
}
int i;
readf(" %s",&i); // read i, skipping leading whitespace
with readf, you can always use %s in your format strings.
Don't use readf if you care for performance, because the current
implementation is very slow.
More information about the Digitalmars-d-learn
mailing list