cpt.c

来自「数字转换的六个功能模块」· C语言 代码 · 共 32 行

C
32
字号
/*
** cpt.c -- encrypt or decrypt ASCII or binary files
**
** Copyright 1982 J. E. Hendrix.  All rights reserved.
*/
#include <stdio.h>
#define NOCCARGC
#define MAXKEY 81
#define CTLZ   26
main(argc, argv) int argc, *argv; {
  char c, key[MAXKEY];
  int i, keylen;
  auxbuf(stdin, 4096);
  keylen=getarg(1, key, MAXKEY, argc, argv);
  if((keylen==EOF)|(key[0]=='-')) {
    fputs("usage: CPT key\n", stderr);
    abort(7);
    }
  i=1;
  while(read(stdin, &c, 1) > 0) {
    poll(YES);
    if(isatty(stdin) && (c==CTLZ)) break;
    c=c^key[i-1];
    if(write(stdout, &c, 1) !=1 ) {
      fputs("output error\n", stderr);
      abort(7);
      }
    i=(i%keylen)+1;
    }
  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?