如何在C上输入输出文件?

时间:2015-11-28 17:53:13

标签: c cryptography xor

我在一些书中找到了这段代码:

enter code here
    int main (int argc, char *argv[])
    {
    FILE *in, *out;
    char *key;
    int byte;

     if (argc !=4) {
     printf ("Usage: xorer <key> <input_file> <output_file>\n");
      return 1;
      }

       key = argv[1];

       if ((in = fopen(argv[2], "rb")) != NULL) {
       if ((out = fopen(argv[3], "wb")) != NULL) {

       while ((byte = getc(in)) != EOF)
       {
       if (!*key) key = argv[1]; 
         byte^= *(key++);
       putc(byte,out);
     }

   fclose(out); } 
   fclose(in); }

  return 0;

}

此代码必须做下一件事(使用XOR操作的简单加密):

input = ]VTYJQC]aGC_PDJ[{RJ[EEMLA  //encrypted key

key = creature_creautre_creature // string for crypting
--------------------------------
Output >$18>$18>$18>$18>$18>$18>$  // ASCII symbols for XOR crypting

但是代码什么都不做(编译没有错误)!我在代码目录中创建了input.data,input.in文件。它没有工作。请问,input_file如何进行和output_file?

1 个答案:

答案 0 :(得分:0)

如果您正确编译了代码,那么运行不带参数的代码将打印使用信息,这也可以在源代码本身中找到:

Usage: xorer <key> <input_file> <output_file>\n

所以,如果你想加密(解密)名为input.txt的文件,在当前目录中找到,使用密钥&#34; ABC&#34;并将输出(加密/解密数据)写入文件output.txt,您将使用该程序如下:

xorer ABC input.txt output.txt

您将在当前目录中找到加密(解密)文件output.txt。

这应该回答您关于为程序提供输入和输出的具体问题。如果您有其他相关问题,请告诉我们。