1 /* A simple but fairly efficient C version of the Unix "wc" tool */ 2 3 #include <stdio.h> 4 #include <ctype.h> 5 6 main() 7 { 8 register int c, cc = 0, wc = 0, lc = 0; 9 FILE *f = stdin; 10 11 while ((c = getc(f)) != EOF) { 12 ++cc; 13 if (isgraph(c)) { 14 ++wc; 15 do { 16 c = getc(f); 17 if (c == EOF) 18 goto done; 19 ++cc; 20 } while (isgraph(c)); 21 } 22 if (c == '\n') 23 ++lc; 24 } 25 done: printf( "%8d%8d%8d\n", lc, wc, cc ); 26 } 27