Ctrl-Z in windows and byLine()
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Oct 12 09:28:02 PDT 2011
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
More information about the Digitalmars-d
mailing list