Got this from a reader:

=======================
I'm testing on Windows the code below, based on your errata changes for
p8, print 1.  It works ok if on console I enter some characters, but if I
terminate console input with ctrl-z, then there is an error exit of the
program.  So, does this code need some exception handler to handle the
immediate end of input from console?
Thanks,
Jay Norwood

void dict1_4()
{
        size_t[string] dict; // see errata use size_t
        foreach (line; stdin.byLine()){
foreach (word; splitter(strip(line))){ // see errata required std.algorithm
                        if (word in dict) continue;
                        auto newID = dict.length;
                        dict[word.idup] = newID; // see errata required idup
                        writeln(newID, '\t', word);
                }
        }

}
=======================

I thought Ctrl-Z simply sends EOF to the reader, so this should work. What is byLine() doing wrong?


Thanks,

Andrei

Reply via email to