#include #include int chc(FILE* fp) { register int c; int num_chars = 0; while ((c = getc(fp)) != EOF) { num_chars ++; } printf("%i\n", num_chars); return 0; } int main(int argc, char** argv) { if (argc == 1) { return chc(stdin); } else if (argc > 1) { FILE* fp = fopen(argv[1], "r"); if (!fp) { perror("Could not open file"); return 1; } return chc(fp) && fclose(fp); } else { printf("Usage: chc file.txt\n"); printf(" or: cat file.txt | chc\n"); printf(" or: chc # read from user-inputted stdin\n"); } return 0; }