xref: /minix/external/bsd/flex/dist/examples/fastwc/mywc.c (revision 0a6a1f1d)
1 /* A simple but fairly efficient C version of the Unix "wc" tool */
2 
3 #include <stdio.h>
4 #include <ctype.h>
5 
main()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