D - No end in sight!
- Andrew Edwards (40/40) Sep 16 2002 Can someone explain why this code does not count the last character of a
-
OddesE
(11/19)
Oct 17 2002
Can someone explain why this code does not count the last character of a file? How would I go about correcting it? If there is a better way of doing it I would appreciate that advice also! To Pavel: Will all the ctype functions be supported in stream.d? I couldn't use both ctype and stream because the two conflict with each other. Thanks in advance, Andrew import stream; int main (char[][] args) { int t_num = 0; int t_ltr = 0; int t_punct = 0; int t_space = 0; int t_char = 0; File file = new File; file.open("edit1.txt"); char ch; assert(file.readable); while(!file.eof()) { file.scanf("%c", &ch); ++t_char; if ((ch >= "A" && ch <= "Z") || (ch >= "a" && ch <= "z")) { ++t_ltr; } else if (isdigit(ch)) { ++t_num; } else if (iswhite(ch)) { ++t_space; } else { ++t_punct; } } file.close(); printf("There are %d numbers,\n", t_num); printf("%d letters, %d punctuation marks,\n", t_ltr, t_punct); printf("and %d spaces for a total of %d characters.\n", t_space, t_char); return 0; }
Sep 16 2002
"Andrew Edwards" <crxace13 comcast.net> wrote in message news:am5eqf$2u0n$1 digitaldaemon.com...Can someone explain why this code does not count the last character of a file? How would I go about correcting it? If there is a better way of doing it I would appreciate that advice also!<SNIP>File file = new File; file.open("edit1.txt"); char ch; assert(file.readable); while(!file.eof())You need to do a read on the file before eof() works? That is what causes this kind of trouble in C... -- Stijn OddesE_XYZ hotmail.com http://OddesE.cjb.net _________________________________________________ Remove _XYZ from my address when replying by mail
Oct 17 2002