The program reads the "file" from stdin, so you need to redirect stdin to the file you want: try "./readingHamlet < hamlet.txt" or "cat hamlet.txt | ./readingHamlet" without the quotes on a *NIX system.
--- Cristi Cobzarenco BSc in Artificial Intelligence and Computer Science University of Edinburgh Profile: http://www.google.com/profiles/cristi.cobzarenco On 24 August 2011 17:01, Brian Brady <[email protected]> wrote: > All > > I am working through Andrei Alexandrescus "The D Programming Language" but > have hit a road block fairly early on. > > There is a program in the book which is designed to read through a text file > and do a simple word count. The program looks like this: > > import std.stdio, std.string; > > void main() > { > //Compute counts > uint[string] freqs; > foreach(line; stdin.byLine()) > { > foreach(word; split(strip(line))) > { > ++freqs[word.idup]; > } > } > > //Prints count > foreach(key, value; freqs) > { > writefln("%6u\t%s", value, key); > } > } > > My query is basically how to read the text file in? > > currently I am trying to use > ./readingHamlet cat hamlet.txt > > but it just hangs there, not doing anything(for a considerable time) so I am > assuming I am doing something wrong. There isn't any actual mention in the > book of *how* reading in the text file should be accomplished, so what is the > best way to do this? > > std.file? > > Seems silly providing a program that analyses a text file, without telling the > reader how to read in the text file, so I am wondering if there is some > assumed knowledge I am missing? > > Regards. >
