#include #include int outch(char c); main(argc, argv) int argc; char *argv[]; { FILE *fp, *fopen(); if (argc == 1) vig(stdin); else while (--argc > 0) if ((fp = fopen(*++argv, "r")) == NULL) { fprintf(stderr, "vig: can't open %s\n", *argv); exit(1); } else { vig(fp); fclose(fp); } exit(0); } vig(fp) FILE *fp; { char cw[100]; char *p = cw; char c; printf("Enter codeword: "); fgets(cw, 100, stdin); while ((c = getc(fp)) != EOF) { if (*p == '\n') p = cw; if (isupper(c)) { outch((c - 'A' + *p - 'A') % 26 + 'A'); p++; } } printf("\n"); } outch(char c) { static ccnt = 0; printf("%c", c); ccnt++; if (ccnt % 5 == 0) printf(" "); if (ccnt % 40 == 0) printf("\n"); }