[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
#define BUF_SIZE 256
int main(int argc, char **argv)
{
FILE *fin = NULL;
FILE *fout = NULL;
char InBuf[BUF_SIZE];
char OutBuf[BUF_SIZE];
int copy, nbyte;
int writeok;
int shift = atoi(argv[1]);
if (argc != 4) {
fprintf (stderr, "Usage: caesar shift file1 file2\n");
exit (EXIT_FAILURE);
}
if ((fin = fopen (argv[2], "r")) == NULL) {
fprintf (stderr, "Open %s failure\n", argv[2]);
exit (EXIT_FAILURE);
}
if ((fout = fopen (argv[3], "w+")) == NULL) {
fprintf (stderr, "Create %s failure\n", argv[3]);
exit (EXIT_FAILURE);
}
while ((nbyte = fread(InBuf, 1, 256, fin)) > 0 && writeok) {
for (copy = 0; copy < nbyte; copy++)
OutBuf[copy] = (InBuf[copy] + shift) % 256;
fwrite(OutBuf, 1, nbyte, fout);
}
fclose (fin);
fclose (fout);
return 0;
}